none
关于sizeof操作符的问题 RRS feed

  • 问题

  • //sizeof
    #include <stdio.h>
    int main()
    {
      char text[] = "Hello,World";
      int num[] = {1, 2, 3};
      printf("%d", sizeof(num));
      printf("%d", sizeof(text));
    }
    如上一段代码,可以计算得到sizeof(text)为12,这是否表明一个字符数组所占用的空间为其字符数外加一个\0,因此sizeof这个计算编译时分配内存空间的操作符会认为是12.

    MichealY
    2009年5月18日 14:17

答案

  • 没错   
    • 已标记为答案 十二晨 2009年5月21日 10:10
    2009年5月18日 17:18
  • char类型的字符串编译器在其后自动加补一个字节的0
    wchar_t字符串自动补两个字节的0.

    sizeof是编译指令,告诉编译器我需要该常数/常数数组类型的占用内存空间大小和该类型生成的二进制代码占用空间大小.


    Hello world
    • 已标记为答案 十二晨 2009年5月21日 10:10
    2009年5月21日 3:07
    版主

全部回复

  • 没错   
    • 已标记为答案 十二晨 2009年5月21日 10:10
    2009年5月18日 17:18
  • char类型的字符串编译器在其后自动加补一个字节的0
    wchar_t字符串自动补两个字节的0.

    sizeof是编译指令,告诉编译器我需要该常数/常数数组类型的占用内存空间大小和该类型生成的二进制代码占用空间大小.


    Hello world
    • 已标记为答案 十二晨 2009年5月21日 10:10
    2009年5月21日 3:07
    版主