和機器字長及編譯器有關係:所以,int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則(ansi/iso制訂的):
1 sizeof(short int)<=sizeof(int)
2 sizeof(int)<=sizeof(long int)
3 short int至少應為16位(2位元組)
4 long int至少應為32位。
unsigned 是無符號的意思。
例如:16位編譯器char :1個位元組
char*(即指標變數): 2個位元組
short int : 2個位元組
int: 2個位元組
unsigned int : 2個位元組
float: 4個位元組
double: 8個位元組
long: 4個位元組
long long: 8個位元組
unsigned long: 4個位元組
32位編譯器
char :1個位元組
char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器)short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double: 8個位元組long: 4個位元組long long: 8個位元組
unsigned long: 4個位元組64位編譯器char :1個位元組
char*(即指標變數): 8個位元組
short int : 2個位元組
int: 4個位元組
unsigned int : 4個位元組
float: 4個位元組
double: 8個位元組
long: 8個位元組
long long: 8個位元組
unsigned long: 8個位元組
資料型別所佔位元組數
一 32位平台 分為有符號型與無符號型。有符號型 short 在記憶體中佔兩個位元組,範圍為 2 15 2 15 1 int 在記憶體中佔四個位元組,範圍為 2 31 2 31 1 long在記憶體中佔四個位元組,範圍為 2 31 2 31 1 無符號型 最高位不表示符號位 unsigned sho...
C語言中各種整型型別所佔位元組數
平台 64位編譯器 linux gcc includemain 結果 char a 1 char b 8 short int c 2 int d 4 unsigned int e 4 float f 4 double g 8 long h 8 long long i 8 unsiged long j...
C語言中幾種型別所佔位元組數
最近經常會遇到c語言中各型別變數所佔位元組數的問題,索性在這裡做乙個整理總結。其實c標準並沒有具體給出規定哪個基本型別應該是多少個位元組數,而且這個也與os 編譯器有關,比如同樣是在32位作業系統,vc 的編譯器下int型別為4個位元組,而在tuborc下則是2個位元組。下面給出乙個 方便檢視個型別...