私はこのスニペットに出くわしました:
#include<stdio.h>
int main()
{
int a[2][2][2] = { {10,2,3,4}, {5,6,7,8} };
int *p,*q;
p=&a[2][2][2];
*q=***a;
printf("%d----%d",*p,*q);
return 0;
}
出力:ガベージ値 ---- 1
これは説明でした:
p=&a[2][2][2] you declare only two 2D arrays, but you are trying to access
the third 2D(which you are not declared) it will print garbage values. *q=***a starting address of a is assigned integer pointer. Now q is pointing to starting address of a. If you print *q, it will print first element of 3D array.
しかし、私はまだ同じことを理解することができません。分かりやすく教えていただきたいです(上記の説明に文句を言っているわけではありません)。
6行目と7行目の説明をお願いします。