以下是代码:
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]);
它正在发生分段错误。