具有char类型的变量的内存分配

时间:2013-03-03 21:31:00

标签: c gcc

我有以下代码:

int main() { 
     char x='a';
     printf("integer = %ld\ncharacter  = %ld\nx = %ld\n", sizeof(int),sizeof('a'),sizeof(x);  
     return 0;  
}

,输出为:

  

整数= 4
  character = 4
  x = 1

我的问题是为什么 char变量x 的大小不等于 'a'

实际上带来了什么不同?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

因为在C中,单个字符常量(例如'a''0')的类型为int而不是char。这在C ++中是不同的,它们的类型为char