对于以下代码:
int (*ptr)[10];
int a[10]={99,1,2,3,4,5,6,7,8,9};
ptr=&a;
printf("%d",(*ptr)[1]);
Run Code Online (Sandbox Code Playgroud)
它应该打印什么?我期待这里的垃圾值,但输出是1.
(我为此得出结论,初始化这种方式指针数组即ptr[10]开始指向a[10]按顺序排列的元素).
但是这个代码片段呢:
int *ptr[10];
int a[10]={0,1,2,3,4,5,6,7,8,9};
*ptr=a;
printf("%d",*ptr[1]);
Run Code Online (Sandbox Code Playgroud)
它给出了分段错误.