目录
sizeof:
计算字符长度
int main()
{
int a = 10;
char b = 'a';
short int c = 10;
printf("%d\n", sizeof a);
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof b);
printf("%d\n", sizeof (char));
printf("%d\n", sizeof c);
printf("%d\n", sizeof (short));
int arr[10] = { 0 };
printf("%d\n", sizeof(arr));
}
这里可看出sizeof只是一个操作符,并非函数,并不是一定需要"()"才能使用;
sizeof"()"中东西不参与运算:
int main()
{
int a = 10;
short s = 0;
printf("%d\n", sizeof(s = a + 2));//
//sizeof()中的表达式不参与计算
printf("%d\n", s); //
return 0;
}
sizeof与数组:
void test1(int* arr)
{
printf("%d\n", sizeof(arr));
}
void test2(char* ch)
{
printf("%d\n", sizeof(ch));
}
int main()
{
int arr[10] = { 0 };
char ch[10] = { 0 };
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(ch));
test1(arr);
test2(ch);
return 0;
}
经过以上代码我们可以得知对于"sizeof"这个操作符求数组时所得结果为整个数组长度;并且如果数组进行了传参处理,则"sizeof"将不能用来求数组长度,并且在x86环境下,所得长度为首元素地址长度(也就是“4”),在x64环境下测得为“8”。结果如下: