一、優先級
1、易錯的優先級

二、類型轉換
在C語言中,存在強制類型裝換,也存在隱式類型轉換,隱式類型轉換實際上屬於強制類型轉換,隱式類型轉換要點如圖。

(1)舉例:算術運算式中,低類型轉換為高類型
#include <stdio.h> void test(void); void test2(void); int main() { test2(); return 0; } void test(void) { char c='A'; short s=0; printf("%d\n",sizeof(s)+sizeof(c)); //打印 3 printf("%d\n",sizeof(s+c)); //打印 4 } void test2(void) { int i = -2; unsigned int j = 1; if((i+j)>=0) //參考C語言中符號的技巧文檔中的隱式優先級轉換, i會先轉換成unsigned int 在再運算。 { printf("i+j>=0\n"); //打印它 } else { printf("i+j<0\n"); } //參考 "深入理解計算機系統(原書第三版3)P85(49)" //以帶符號的10進制形式輸出整數 printf("i+j=%d\n", i + j); //這里會打印-1,但是這個-1並不是一個負數,而是無符號數4294967295的補碼。 //以不帶符號的10進制形式輸出整數 printf("i+j=%u\n", i + j); //這里會打印4294967295 }
