1
我有以下代码:C为什么sizeof('a')= 4且sizeof(char)= 1?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[]){
printf("size of tab = %d\n", sizeof('\t'));
printf("size of a = %d\n", sizeof('a'));
printf("size of char = %d\n", sizeof(char));
}
输出:
size of tab = 4
size of a = 4
size of char = 1
为什么是'a'
的大小和char
不同的尺寸。是不是'a'
a char
?
'的sizeof( '\ T')'是实际计算的大小的'int'其中'int'是' '\ t' 内的ASCII值''sizeof('a')的情况类似' –
'''是'int'。 C中的所有常量至少是'int'。 – chux
6.4.4.4字符常量p2 _An整数字符常量是一个或多个多字节字符的序列,用单引号括起来,如'x'._和p10中所示_An整数字符常量的类型为int._ 6.5.3.4 sizeof ...运算符p4 _当sizeof应用于具有char,unsigned char或 signed char的操作数(或其合格版本)时,结果为1._ – BLUEPIXY