C为什么sizeof(' a')= 4且sizeof(char)= 1?

时间:2017-09-25 02:03:35

标签: c size byte

我有以下代码:

#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'一个char吗?

1 个答案:

答案 0 :(得分:1)

'a是包含字符a的int。 看看这些表达式的值:

sizeof((char) 'a');
char a = 'a';
sizeof(a);