ポインタと配列を組み合わせた入社試験問題の詳細解説

問題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 投稿