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
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.