C/C++的sizeof('a')和sizeof(char)

#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)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章