0 Tage Serie
c / intermediate
Snippet

Skalierung in der Zeigerarithmetik

Die Zeigerarithmetik in C wird automatisch um die Größe des Datentyps skaliert. Das Inkrementieren eines Integer-Zeigers verschiebt ihn um die Anzahl der Bytes, die ein 'int' belegt, nicht nur um ein einzelnes Byte.

snippet.c
c
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main() {
int arr[] = {10, 20, 30};
int *ptr = arr;
printf("Value: %d\n", *ptr);
ptr++; // Moves by sizeof(int)
printf("Next Value: %d\n", *ptr);
return 0;
}
Erklärung
1
int *ptr = arr;
Der Zeiger wird auf die Adresse des ersten Elements im Array initialisiert.
2
ptr++;
Rückt den Zeiger zum nächsten Element vor, indem sizeof(int) Bytes zur Adresse addiert werden.