c语言面试题之sizeof
*/-->
c语言面试题之sizeof
Table of Contents
1 sizeof
sizeof是c语言中判断数据类型或者表达式的长度符,它不是函数,,字节数的计算在程序编译
时进行,而不是在程序执行的过程中才计算出来!(文采不行,我就废话下了,接下来上重点)!
#include int main(int argc, char* argv[])
{
char str[]="123";
char *p=str; printf("%d\n", sizeof('a')); //=4
printf("%d\n", sizeof("a")); //=2
printf("%d\n", sizeof(str)); //=4
printf("%d\n", sizeof(p)); //=4/8
printf("%d\n", sizeof(*p)); //=1 return 0;
}
- sizeof('a') == 4
众所周知'a'对应的ascii码的值为97,即 'a'==97,换句话讲
sizeof('a') 等价于 sizeof(97);
换句话讲,编译器把它当整型常量int处理 - sizeof("a") == 2
无需解释你们懂 - sizeof(str) == 4
求的是数组占用空间大小 - sizeof(p) == 4或者8
32位系统无论什么类型的指针,大小都是4个字节
64位系统无论什么类型的指针,大小都是8个字节 - sizeof(*p)=1
等价于 sizeof(str1)
Footnotes:
1
DEFINITION NOT FOUND.