数组名可以作为数组地址的一种表示方法。数组名就是数组第一个元素的地址,可以代表整个数组的地址。
例如:
int nums[] = {1, 2, 3, 4, 5};int* p = nums; // nums即为数组的地址
在这个例子中,nums就是一个整型数组,由于数组名就是数组第一个元素的地址,所以nums可以表示整个数组的地址。
可以在函数参数中使用数组名作为形式参数,这样数组名也可以表示数组的地址。
void func(int arr[]){ int* p = arr; // arr即为数组的地址
数组第一个元素的地址也可以作为数组地址的一种表示方法。因为数组的每个元素都是连续存储的,所以第一个元素的地址就是整个数组的地址。
例如:
int nums[] = {1, 2, 3, 4, 5};int* p = &nums[0]; // &nums[0]即为数组的地址
在这个例子中,&nums[0]表示数组第一个元素的地址,也可以表示整个数组的地址。
指针变量也可以作为数组地址的一种表示方法,通过指针变量指向数组第一个元素的地址来表示整个数组的地址。
例如:
int nums[] = {1, 2, 3, 4, 5};int* p = &nums[0]; // p指向数组的第一个元素
int* q = p; // p即为数组的地址
在这个例子中,p表示数组第一个元素的地址,q将p赋给了自己,所以q也可以表示整个数组的地址。
利用指针运算也可以得出数组的地址。例如,可以利用指针的加法运算,让指针加上偏移量,得到数组中任意一个元素的地址,从而得到整个数组的地址。
例如:
int nums[] = {1, 2, 3, 4, 5};int* p = nums; // p指向数组的第一个元素
int* q = p + 2; // q指向数组的第三个元素
int* r = p + 4; // r即为数组的地址
在这个例子中,p表示数组第一个元素的地址,q表示数组第三个元素的地址,r利用指针加法运算得到了整个数组的地址。