arr是一个数组的名字,那么*(&arr) 是什么 ? 很多人会说是数组的首元素的指针,但是&arr 的时候,arr是解释为数组的
int arr[3] = {1,2,3};
int ( * p)[3] = arr; p是指向数组arr的指针,这句没问题吧?
int a= * p; 按道理p是arr数组的指针,那么 * p就是arr数组,但是这这样写语句 * p 被解释会int*类型
编译的时候警告 * p 被认为是 int * 类型指针,这边 * p 是指向数组第一个元素1的指针
运行起来看下,单独输出 * p 被解释为 数组类型,* p被认为是arr数组,但是当参与到赋值运算的时候,又被解释成int* 类型