关键字sizeof()

首先我们必须知道,sizeof()是一个关键字而不是一个函数,这一点我们可以证明:

int main()
{
                 int a = 5;
                 short b = 3;
                printf( "%d\n", sizeof (b = a + 2));
                printf( "b=%d\n", b);
                system( "pause");
                 return 0;
}

spacer.gif

wKioL1bxXJux-lyqAABWdiyLthg615.png

我们可以观察到,b的值没有发生变化,所以sizeof是一个关键字,而不是一个函数。

2、sizeof()在主函数里面使用,不能在在外部函数里面使用。

例:

int  num_arr(int arr[])                        //形参arr其实是数组的首地址,所以对他求内存相当于对arr[0]求内存
{
                 int b = sizeof (arr);
                 return b;
}
int main()
{
                 int arr[10];
                 int ret=num_arr(arr);
                printf( "sizeof(arr)=%d\n", sizeof (arr));    //这个arrs是整个数组的地址,相当于&arr
                printf( "ret=%d\n", ret);
                system( "pause");
                 return 0;
}

spacer.gifwKioL1bxXPiTQRwPAABVRkcLR6k738.png

这就是sizeof()不能再外部函数里面使用的原因。

3、int arr[10];

因为sizeof()是一个关键字 所以这两种方式都是正确的

sizeof arr;

sizeof(arr);

但是:

sizeof(int)  正确

sizeof int        错误

这是因为int也是一个关键字,所以两个关键字放在一起,会产生语法错误。

转载于:https://www.cnblogs.com/Sunnylunch/p/5483112.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值