C C 基本資料型別所佔位元組數

2021-08-27 14:12:53 字數 1278 閱讀 4649

無符號數: 0 —————– 255

有符號數: -128 ——— 0 ———- 127

1位元組=8位

1k=1024位元組=2^10

1m=1024k

1g=1024m

買硬碟實際記憶體小是因為廠商當1000換算的

這個基本的問題,很早以前就很清楚了,c標準中並沒有具體給出規定那個基本型別應該是多少位元組數,而且這個也與機器、os、編譯器有關,比如同樣是在32bits的作業系統系,vc++的編譯器下int型別為佔4個位元組;而tuborc下則是2個位元組。

所以int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則(ansi/iso制訂的):

sizeof(short int)<=sizeof(int)

sizeof(int)<=sizeof(long int)

short int至少應為16位(2位元組)

long int至少應為32位。

下面給出不同位數編譯器下的基本資料型別所佔的位元組數:

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個位元組

C C 基本資料型別所佔位元組數

關於這個基本的問題,很早以前就很清楚了,c標準中並沒有具體給出規定那個基本型別應該是多少位元組數,而且這個也與機器 os 編譯器有關,比如同樣是在32bits的作業系統系,vc 的編譯器下int型別為佔4個位元組 而tuborc下則是2個位元組。所以int,long int,short int的寬度...

C C 基本資料型別所佔位元組數

所以int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則 ansi iso制訂的 下面給出不同位數編譯器下的基本資料型別所佔的位元組數 16位編譯器 char 1個位元組 char 即指標變數 2個位元組 short int 2個位元組 int 2個位元組 uns...

C C 基本資料型別所佔位元組數

有幾條鐵定的原則 ansi iso制訂的 下面給出不同位數編譯器下的基本資料型別所佔的位元組數 16位編譯器 char 1個位元組 char 即指標變數 2個位元組 short int 2個位元組 int 2個位元組 unsigned int 2個位元組 float 4個位元組 double 8個位...