对于以下代码:
int (*ptr)[10];
int a[10]={99,1,2,3,4,5,6,7,8,9};
ptr=&a;
printf("%d",(*ptr)[1]);
它应该打印什么?我期待这里的垃圾值,但输出是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]);
它给出了分段错误。