一堆数组输出的时候用sizeof的用法

一维数组

int a[] = {1,2,3,4};

1.数组名单独放在sizeof()内部,数组名表示整个数组

所以sizeof(数组名)计算的是整个数组的大小,单位是字节

2.&数组名,数组名表示整个数组

所以&数组名取出的是整个数组的地址

3. 除此之外,所有的数组名都表示首元素的地址

printf("%d\n",sizeof(a));       
// 输出16,因为数组名单独在sizeof的内部,数组名表示的是整个数组,每个整数字符四个字节。

printf("%d\n",sizeof(a+0));     
//输出4,因为数组名没有单独在sizeof的内部,a表示首元素,有四个字节。


printf("%d\n",sizeof(a+1));     
//输出4,数组名没有单独在sizeof的内部,a表示首元素,再+1表示的是数组内下表为1的数。


printf("%d\n",sizeof(&a));      
//输出4,&a为数组a地址,但是数组名没有单独放在sizeof()的内部,所以指的是数组内首元素。


printf("%d\n",sizeof(&a+1));    
//输出4,&a表示数组a的地址,地址表示4个字节,+1以后还是一个地址,所以是4个字节。

printf("%d\n",sizeof(&a[0]));   
//输出4,&a[0]表示首元素,首元素四个字符。

printf("%d\n",sizeof(&a[0]+1)); 
//输出4,&a[0]+1表示下表为1,首元素四个字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值