c语言面试题之sizeof

时间:2023-03-09 05:51:08
c语言面试题之sizeof

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.

Date: a date, fixed, of a format string for format-time-string

Author: 野书

Created: 2016-07-24 日 11:47

Emacs 24.5.1 (Org mode 8.2.10)