关键字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是一个关键字,而不是一个函数。ide

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

例:url

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()不能再外部函数里面使用的缘由。spa

三、int arr[10];orm

由于sizeof()是一个关键字 因此这两种方式都是正确的blog

sizeof arr;内存

sizeof(arr);get

可是:it

sizeof(int)  正确

sizeof int        错误

这是由于int也是一个关键字,因此两个关键字放在一块儿,会产生语法错误。

相关文章
相关标签/搜索