ポインタと配列を組み合わせた入社試験問題の詳細解説
問題1:ポインタ演算とメモリ配置の理解
#include <stdio.h>
int main() {
int a[4] = {1, 2, 3, 4};
int* ptr1 = (int*)(&a + 1);
int* ptr2 = (int*)((int)a + 1);
printf("%x %x\n", ptr1[-1], *ptr2);
return 0;
}
&a は配列全体のアドレスを指し、その型は int (*)[4] です。
&a + 1 は配列全体を飛び越えたアドレスを示しま ...
6月23日 21:40 投稿