この疑いがあったとき、私はポインターを再訪していました。
int *ptr;
int arr[5] = {10,20,30,40,50};
ptr = &arr[0];
今すぐprintf("Value: %d",*ptr);
印刷します10
私が行った場合:
ptr++;
printf("Value: %d",*ptr);
結果は次のようになります。20
同様に私が行う場合:
*ptr++;
printf("Value: %d",*ptr);
結果は次のとおりです。30
しかし
printf("Value: %d",++*ptr);
私にくれます31
ptr
インクリメントするとタイプint
なので、次のメモリ位置に4バイトジャンプすると思いました。しかし、なぜ と ではなく に対して同じ動作を示すの*ptr++
でしょptr++
う++*ptr
か?