//有这样一道题目:
#include <stdio.h>
int main(void) {
int **p;
int arr[100];
p = &arr;
return 0;
}
arr是数组的首地址,&arr就代表首地址的地址,由于首地址的地址是未知的,就可能用起异想不到的错误,所以是通不过的!有的只有警告,一方面是你的编译器比较放松,另一方面是你的首地址的地址很幸运的没有引发异想不到结果!
//应该
int main(void) {
int **p;
int arr[100];
int * m = arr;
int ** p = &m;
return 0;
}
另外:要知道: 数组名是个常量指针,对arr进行赋值也是错误的