unsigned int a = -1;
printf("a = %d", a);
printf("a = %u", a);
int b = 3012345678;
printf("b = %d", b);
printf("b = %u", b);
輸出結果:
a = -1
a = 4294967295
b = -1282621618
b = 3012345678
說明:編繹器賦值時不管你是有符號還是無符號,它眼中只有一個32位的存儲空間。給負數就按補碼的形式存,給正數就按原碼的形式存。至於讀的時候,你是解讀為有符號還是無符號,隨便你。
---------------------------------------------------------------------------------------------
int d = -1;
unsigned int e = 9999;
if (d > e)
puts("- 1 > 9999"); //邪惡的代碼
else
puts("9999 > -1"); //正義的代碼
輸出結果:
-1 > 9999
說明:邪惡戰勝了正義,因為無符號和有符號兩個數比較時,會默認轉成無符號數,再進行比較。
-----------------------------------------------------------------------------------------------
C++小貼士:類的靜態函數可以被繼承,但不能被重寫。