20 March 2013
sizeof是C/C++中的单目操作符,在编译期间计算,测量这个变量占用的内存大小,它并不是函数。

sizeof是C/C++中的单目操作符,在编译期间计算,测量这个变量占用的内存大小,它并不是函数。返回值是size_t(无符号整数)。可以求出数据类型、函数、变量,表达式的大小。

  • 数据类型sizeof(type)。可以求出指定数据类型的大小,单位是字节。注意:指向任何数据类型的指针通过sizeof运算都是4。

      printf("%dn", sizeof(int*)); // 4
    
  • 变量sizeof a。计算变量大小时并不需要加括号。

      char a[] = "hello";
      printf("%dn", sizeof(a));  // 6。字符串赋给数组时,还要考虑末尾的''
    
  • 表达式。这里的表达式求值不是在求表达式结果,而是得到表达式结果的占用内存大小。编译器在编译的时候判断表达式结果类型,求得结果。

      printf("%dn", sizeof(1 + 1)); // 4
    
  • 函数。计算函数返回值大小,并不会执行函数。

      int getArrChar() {
          printf("hello");
          return 3;
      }
      main() {
          printf("%dn", sizeof(getArrChar())); // 4
      }
    

原文链接:SIZEOF操作符,转载请注明来源!

EOF