c语言中,数组取地址的书写格式

文章讲述了如何使用printf函数打印一维数组(arr1)和二维数组(arr2)的地址,以及数组名加减操作对元素地址的影响。着重分析了数组名、元素地址和整个数组在加减操作中的区别,以及sizeof函数的计算范围。
摘要由CSDN通过智能技术生成

 数组取地址

 为了更好的区分数组取地址时的情况,我们建立两个数组,arr1一维数组和arr2二维数组,用printf函数来打印出每个例子arr1和arr2的地址,这样可以更加直观的区分出来。

首先我们看到第一组打印,可以看到若是直接取arr1,那打印出来的地址是arr1数组的首元素地址,而当arr1+1,我们可以看到,因为arr1是int整型数组,打印的输出是前进了四个字节,打印的是arr1第二个元素的地址。所以我们得到结论,数组名其实就表示数组的首元素地址,而数组名的加减其实对标的就是指定到那个元素的地址。

接下来看到第二组打印,我们可以看到,在打印时我们增加了取地址符号,&arr1[0]的表示,同样也可以取到首元素地址,而且在对其+1时也可以输出第二个元素的地址,和第一组打印的地址相同,表示这样的取地址也是可行的。

最后看到arr1的最后一组打印,&arr1表示对数组名取地址,这样的写法看似依然是取首元素的地址,但是当我们进行加减的操作时,却是跳过了整个数组,而非和前面两组一样,跳过的是一个元素,所以可以得出,若是对数组名取地址的操作,加减的单位是整个数组。

另外还有一种情况,表示的是整个数组,就是arr2数组在放进sizeof函数之后,可以发现其也是计算的整个数组,而非单个元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值