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

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