整形提升的意思是將類似於char short之類的非int數據類型,轉換成int再進行計算 在C語言中,整型提升(Integer )是指將小於int類型的整數類型(如char、short等)轉換為int類型,以便進行算術運算或比較運算。這是C語言自動類型轉換的一部分,目的是確保運算的正確性和效率。 如果操作數的類型是有符號的,它們會被提升為int類型。 如果操作數的類型是無符號的,並且它們的值在int類型的表示範圍內,那麼它們也會被提升為int類型。 如果操作數是long或long long類型,並且它們的大小超過了int類型,那麼它們不會被提升為int。相反,如果int類型的操作數需要與long或long long類型的操作數進行運算,那麼int類型的操作數可能會被提升為long或long long類型,以確保運算的正確性。 例子: #include <; int main(){ char a = 10; short b = 20; int c = a + b;// char和 short類型的 a和 b會被提升為 int類型 printf(“Sum:%d\n“, c);//輸出“Sum: 30“ return 0; } 總的來說,但還有更深入的理解,其實整形提升,是將char和short之類的數據類型,轉變為二進製編碼再計算。 char,short,都有一個範圍,如果用十六進位製來定義一個char,那麼char 0xb6的大小大於char所能承載的數字大小。0xb6大小為182,而char類型,隻能存到-128到127這麼大區間。(0x是十六進位製的開頭,b是11) 所以, char a = 0xb6; a!= 0xb6;
第33章 C語言之整形提升(1 / 1)