关于array、&array、&array[0]的辨析,即数组名、数组地址、数组首元素地址

定义一个数组array:
int array[5] = { 1,2,3,4,5 };
下面用3个指针分别指向array、&array、&array[0]:

int* pt1 = array; //pt1 整形指针
int(*pt2)[5] = &array; //pt2 数组指针
int* pt3 = &array[0]; //pt3 整形指针

则对于 array、&array、&array[0]以及指向它们的指针 pt1、pt2、pt3:

array 既是数组名亦是数组首元素array[0]的地址,pt1属于整形指针;
&array 是一个包含5个整形元素的数组的地址,在值上与array首元素地址值相同, 但两者在类型上不一样,&array 是 int(*)[5] 类型,即pt2属于数组指针;
&array[0] 是数组首元素array[0]的地址,pt3也属于整形指针;

关于array、&array、&array[0]的辨析,即数组名、数组地址、数组首元素地址 三者的辨析

 
喜欢 0
分享