printfdsizeofu和,printf d ,sizeof u 和printf d ,sizeof 是什麼意思,他們的結果是什麼,請幫忙分析一下?

2021-12-18 21:15:20 字數 1686 閱讀 2339

1樓:劇佛

printf("%d",sizeof('u'));輸出的值為1.因為'u'是一個字元型別,sizeof(字元)就等於1.

這就等價於 char a='u';printf("%d",sizeof(a));結果都是1.

printf("%d",sizeof(''));是錯誤的表達,empty character constant。sizeof('')在sizeof中沒有標明具體的型別,會報錯。

另外printf("%d\n",sizeof(int)); //4

printf("%d\n",sizeof(char)); //1

printf("%d\n",sizeof(float)); //4

printf("%d\n",sizeof(doulbe)); //8

2樓:張超

可能是寫程式的軟體不一樣的 所以結果不同

3樓:花兒朵朵

printf("%d",sizeof('u'));按目前32位機來講,結果應該是4,如果不去先宣告一個字元型的變數來裝這個'u',那麼你直接檢視'u'在記憶體的儲存空間大小時,其實計算機是按一個基本定址單位來存放這個'u'的,32位機的定址單位為4byte

printf("%d",sizeof(''));這個會報錯,如果你想表示空字元,在''中間應該有個空格,像' ',所以它的結果應該也是4.

另外我再給你講一些特殊的:

printf("%d",sizeof(2));結果是4,因為2是一個整型常量,所以用int來儲存

printf("%d",sizeof(2233333333));結果是8,因為2233333333已經超過了int的表示範圍,所以系統知道這是一個long long型別

printf("%d",sizeof("2"));結果是2,"2"是一個只有一個字元的字串,那為什麼結果是2呢,因為在字串,結尾預設是有一個空字元\0,所以字串的字元個數要預設+1,所以字串的記憶體空間是字元個數+1byte

printf("%d",sizeof(void));結果是1,因為void本身就表示系統已經宣告好的空字元,所以為1

main() { printf("%d\n",sizeof('c')); } 為什麼結果是4不是1

4樓:匿名使用者

說明你的作業系統一般是以(8*4=)32位的形式儲存char變數

sizeof('c'),」字元c的位元組個數「

char變數一般在儲存器中佔8位(至少8位,有8位、16位....)

5樓:匿名使用者

char是字元型,但是由於不同的平臺下,有的編譯器對程式做出了適當的優化,造成結果可能存在差異,例如:

char型別佔 1個位元組,在32位的系統下,每32個bit,也就是4個位元組為一個基本定址單位,所以當你下一個變數定義時,不繼續在這個char的變數後面定義,而是在下一個4個位元組的單位開始處定義,就造成前一個char變數後存在3個位元組的 空白。

有些編譯器做出了優化可能將其直接在前一個變數後定義以節省記憶體,這樣就是1個位元組了。

總的來說,可能由於編譯器、系統的差異導致結果有所差別,你可以將其修改為 sizeof(char) 再看看。

6樓:

取決於硬體平臺

可能是1,2,4,8個位元組

印拼音和組詞和音序,抽和音序和拼音和部首和組詞

一 抄印的音序是y,拼音襲是y n。二 部首 卩 三 釋義 1 圖章,戳記 章。璽。記。把子 亦喻政權 2 痕跡 手 指 子 a.痕跡 b 高利貸的一種,全稱 錢 3 用油墨 染料之類把文字或圖畫留在紙 布 器皿等材料上 刷。排 制。發 f 4 彼此符合 證。心心相 5 外界事物反映在腦中所留下的形...

01和09和007和028和091和00107和

當然是十分位最大的,這個數字最大 0.91 0.9 0.28 0.1 0.0996 0.0737 0.07 0.0289 0.0107 理工學科數學 20 奧數老師幫你回答 這是一道追及問題,追及路程為 200 3 600米,所以追及時間為 600 250 200 12分鐘,所以甲跑的路程為12 2...

of和for的用法和區別,and和with的區別和用法

偶爾符合愛普和哈魯的用,別在於它們的區分和用法都是不同的。為了,為 目的 to run for exercise 為鍛鍊而跑步 to go for a walk 去散步屬於 的 用的 equipment for the education教育裝置 適合於 需要 或目的 a room for slee...