[問題] C檔與CPP檔執行結果不同
大大們好,今天我在練習sizeof函數時遇到奇怪的現象,以下截圖來表示
我的操作過程。
我的程式碼:
#include <stdio.h>
int main(){
printf("%d\n", sizeof('a'));
printf("%d\n", sizeof(char));
getchar();
}
------------------------------以下是步驟--------------------------
1、一開始用cpp檔來存這段程式碼,結果是印出兩個1
http://imgur.com/Wl0FvWh

2、然後我在右邊方案總管的地方,把cpp改成c,結果印出4和1
http://imgur.com/7TixZdb

3、接著我把第二個printf註釋掉,結果印出4,這時還是c檔
http://imgur.com/ZtHWIHS

4、然後一樣的代碼我把c再改成cpp,結果卻是4而不是1
http://imgur.com/GSi9yIS

5、最後我把註釋復原,此時印出兩個1,和一開始的結果一樣
http://imgur.com/OY4Tc21

有兩個問題想請問各位大大
1、用c檔和cpp檔印出sizeof('a')的結果為什麼不一樣呢?那'a'到底多大?
2、為啥同是cpp檔的情況下,印出來的結果一下是1一下是4,可以讓它這樣
變來變去的嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.63.50
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1451552611.A.85A.html
→
12/31 17:05, , 1F
12/31 17:05, 1F
→
12/31 17:06, , 2F
12/31 17:06, 2F
→
12/31 17:07, , 3F
12/31 17:07, 3F
→
12/31 17:08, , 4F
12/31 17:08, 4F
→
12/31 20:08, , 5F
12/31 20:08, 5F
→
12/31 20:08, , 6F
12/31 20:08, 6F
→
12/31 20:10, , 7F
12/31 20:10, 7F
→
12/31 20:16, , 8F
12/31 20:16, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章