C语言数组名表示首元素地址

文章详细阐述了C语言中数组名的特性,通常它表示数组首元素的地址,但在`size()`函数中代表整个数组的大小,以及在取地址符`&`前时,表示整个数组的地址。通过示例代码展示了数组地址和首元素地址加上偏移量后的变化,说明了地址变化基于数组长度。此外,提及二维数组的数组名表示第一维数组的地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

除两种情况外,C语言中的数组名均表示数组中首元素的地址。

1. size(数组名),此时数组名表示整个数组,返回整个数组的大小(单位: 字节)

2. &数组名,此时数组名也表示整个数组,返回数组的地址(值与首元素地址相同,但意义不同)

针对第二点的详细解释:

#include <stdio.h>

int main() {

	int arr[10] = { 0, 1 };
	printf("%p\n", arr);
	printf("%p\n", arr + 1);
	printf("%p\n", arr + 2);
	printf("----------------------------\n");
	printf("%p\n", &arr[0]);
	printf("%p\n", &arr[0] + 1);
	printf("%p\n", &arr[0] + 2);
	printf("----------------------------\n");
	printf("%p\n", &arr);
	printf("%p\n", &arr + 1);
	printf("%p\n", &arr + 2);
}

 控制台输出结果:

000000DF806FFA38
000000DF806FFA3C (+4)
000000DF806FFA40 (+4)
----------------------------
000000DF806FFA38
000000DF806FFA3C (+4)
000000DF806FFA40 (+4)
----------------------------
000000DF806FFA38
000000DF806FFA60 (+40)
000000DF806FFA88 (+40)

 注意到,虽然数组的地址与其首元素的地址相同,但对其加减某整数后,变化的值为整个数组的长度的倍数.

除以上两种情况,数组名均表示此数组中首元素的地址.


另外,由上表述,可知二维数组的数组名也表示首元素的地址。只不过此时首元素同样为一个数组,也就是说此时二维数组的数组名表示第一个一维数组的地址。

通过融会贯通,在知识之间建立联系,才能更好地理解并掌握知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值