24.数组名字取地址变成数组指针,数组名和指针变量的区别

文章详细阐述了一维数组和二维数组在取地址后作为指针的行为,说明了数组名实际上是一个常量指针,加1操作在不同维度数组中的含义。同时对比了数组名和指针变量的相同点(如都指向首元素地址)和不同点(如数组名不可赋值,对二者取地址结果不同)。
摘要由CSDN通过智能技术生成

数组名字取地址变成数组指针

1.一维数组名字取地址,变成一维数组指针,加1跳一个一维数组。

int a[10];
a+1 跳一个整型元素,是a[1]的地址
a和a+1相差一个元素,4个字节

&a 就变成了一个一位数组指针,是int(*p)[10]类型的。
(&a)+1 和 &a 相差一个数组即10个元素40个字节。

int main()
{
   
	int a[10];
	printf("a=%p\n", a);
	printf("a+1=%p\n", a + 1);

	printf("&a=%p\n", &a);
	printf("&a+1=%p\n", &a + 1);
	return 0;
}

在这里插入图片描述
在这里插入图片描述

2.二维数组

int a[4][5];
a+1跳5个整型
(&a)+1跳4行5列(80个字节)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oo0day

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值