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)

posted on 2016-07-24 11:45  野书  阅读(493)  评论(0编辑  收藏  举报

导航