#include <stdio.h>
int main()
{
char b = 'a';
printf("a === %d\n",(int)sizeof('a'));
printf("b === %d\n",(int)sizeof(b));
return 0;
}
猜猜结果是如何:
a === 4
b === 1
#include <iostream>
using namespace std;
int main()
{
char a = 'a';
cout << "a === " << sizeof('a') << endl;
cout << "b === " << sizeof(a) << endl;
return 0;
}
猜猜结果是如何:
a === 1
b === 1
原因
在C标准中:
char 和 字符变量属于字符常量,大小当然是1。
‘a’被称作整形字符常量(integer character constant),相当于是int类型,故为4。
在C++标准中:
char、变量a、’a’ 都称为字符型变量(character literal)。