回覆列表
-
1 # 小小平凡生活雜記
-
2 # 髒話比謊話乾淨558
如果在16位計算機系統(如Turbo C)中,short型別和int型別都是佔2個位元組的記憶體空間,所以其取值範圍都是-2^15~2^15-1
如果在32位計算機系統(如Visual C++)中,short型別佔2個位元組,而int型別佔4個位元組,因此它們的取值範圍會不一致,此時,short的取值範圍為:-2^15~2^15-1;而int的取值範圍為:-2^31~2^31-1
-
3 # 使用者7257701057035
a+=1 和 a=a+1 還是有區別的,當a不是int型別的時候。
假如a為short型別,a+=1相當於 a=(short)(a+1);隱藏了一個顯式型別轉換。
a=a+1則會因為將a+1(int型別)直接賦給a(short)型別而出錯。
1、C/C++ 規定int字長和機器字長相同
2、作業系統字長和機器字長未必一致
3、編譯器根據作業系統字長來定義int字長
整形變數是不是32位的問題不僅僅與cpu架構有關,而且與編譯器有關,所以int可以為32位或者16位,而short為短整形變數,只能為16位