int nums[10]={1,2,3,4,5}
int *p1 = &nums
记忆方法
这里首先从字面意思简单记忆,以后缀为准,如指针数组,后缀是数组,所以这本质上是一个数组;
数组指针,后缀是指针,所以这本质上是指针。
1指针数组
从运算符角度来看,[ ]是比*号运算符高级的,所以这里[ ]先进行结合,所以从定位来看,这是一个数组。而*号紧随类型名出现,因此是声明的一部分,是指针的意思。结合本语句,在这里的含义是数组里的元素都是指针。
定义方法:对内部元素分别取地址,然后再赋值。
int *ptrs[10]
2数组指针
( )的运算符更高级,所以优先*,所以这是一个指针。
定义方法:以下几种定义方法是通用的。
int nums[10]={1,2,3,4,5}
int (*p)[10] = &nums
int nums[10]={1,2,3,4,5}
int *p1 = &nums
int nums[10]={1,2,3,4,5}
int *p2 = &nums[0]