🌈 關于今天的這一part 簡單說說關于C中的short 和 int 主要是復盤C語言時候的一個小小的回顧把~(內容來自C Primer Plus 第六版)
🐳主要是討論一下兩個東西
1?? 在給函數傳遞參數時,C編譯器把short類型的值自動轉換成int類型的值 2??在表示short類型時,使用的h有什么用
🌿 ok,先來看看這個題
🤔運行之后的結果是什么
#include <stdio.h>
int main(void)
{short end = 200;printf("end = %hd and %d\n", end, end);return 0
}
沒錯 ,都是200.
🌞這邊有兩個比較需要注意的點。
對于short類型的變量end,在printf()中無論指定 以short類型(%hd)還是int類型(%d) 打印,打印出來的值都相同。
這是因為在給函數傳遞參數時,C編譯器把short類型的值自動轉換成int類型的值。(后面的隱式轉換也是會用到這些點的)你可能會提出疑問:為什么要進行轉換?h修飾符有什么用?
1??第1個問題的答案是,
int類型被認為是計算機處理整數類型時最高效的類型。 因此,在short和int類型的大小不同的計算機中,用int類型的參數傳遞速度更快。
2??第2個問題的答案是,
使用h修飾符可以顯示較大整數被截斷成 short 類型值的情況。
舉個例子 🌰
把 65537 以二進制格式寫成一個 32 位數是
00000000000000010000000000000001。
使用 %hd,printf()只會查看后 16位,所以顯示的值是 1 。與此類似,如果使用了%ld,printf()只顯示了儲存在后32位的值。
最后要注意的是,在使用 printf()函數時,切記檢查每個待打印值都有對應的轉換說明,還要檢查轉換說明的類型是否與待打印值的類型相匹配
🌈ok 就這么多,完結~ 點個贊唄~