C 資料型別佔位元組大小分析

2021-10-06 16:13:33 字數 3532 閱讀 6778

型別

關鍵字布林型

bool

字元型char

整型int

浮點型float

雙浮點型

double

無型別void

寬字元型

wchar_t

一些基本型別可以使用乙個或多個型別修飾符進行修飾:

各資料型別在記憶體中所佔位元組的大小隨系統的差異而變,可通過sizeof()函式檢視,下面直接總結一些基本型別所佔位元組的大小。

型別32位系統

64位系統

bool11

char11

short22

int4

4long44

double88

float44

*48注:有的地方說64位系統中long佔8位元組,不過在我的電腦中實測確是4位元組,所以還是要根據實際的硬體及編譯器確定到底占用多少!

幾點說明:

#include

#include

#include

using namespace std;

intmain()

type:           ************size**************

--------------------------------

*p: 所佔位元組數:8

--------------------------------

bool: 所佔位元組數:1 最大值:1 最小值:0

--------------------------------

char: 所佔位元組數:1 最大值: 最小值:€

signed char: 所佔位元組數:1 最大值: 最小值:€

unsigned char: 所佔位元組數:1 最大值: 最小值:

--------------------------------

short: 所佔位元組數:2 最大值:32767 最小值:-32768

unsigned short: 所佔位元組數:2 最大值:65535 最小值:0

wchar_t: 所佔位元組數:2 最大值:65535 最小值:0

--------------------------------

int: 所佔位元組數:4 最大值:2147483647 最小值:-2147483648

unsigned: 所佔位元組數:4 最大值:4294967295 最小值:0

--------------------------------

long: 所佔位元組數:4 最大值:2147483647 最小值:-2147483648

unsigned long: 所佔位元組數:4 最大值:4294967295 最小值:0

--------------------------------

double: 所佔位元組數:8 最大值:1.79769e+308 最小值:2.22507e-308

long double: 所佔位元組數:8 最大值:1.79769e+308 最小值:2.22507e-308

--------------------------------

float: 所佔位元組數:4 最大值:3.40282e+38 最小值:1.17549e-38

size_t: 所佔位元組數:8 最大值:18446744073709551615 最小值:0

string: 所佔位元組數:40

type: ************size**************

type:           ************size**************

--------------------------------

*p: 所佔位元組數:4

--------------------------------

bool: 所佔位元組數:1 最大值:1 最小值:0

--------------------------------

char: 所佔位元組數:1 最大值: 最小值:€

signed char: 所佔位元組數:1 最大值: 最小值:€

unsigned char: 所佔位元組數:1 最大值: 最小值:

--------------------------------

short: 所佔位元組數:2 最大值:32767 最小值:-32768

unsigned short: 所佔位元組數:2 最大值:65535 最小值:0

wchar_t: 所佔位元組數:2 最大值:65535 最小值:0

--------------------------------

int: 所佔位元組數:4 最大值:2147483647 最小值:-2147483648

unsigned: 所佔位元組數:4 最大值:4294967295 最小值:0

--------------------------------

long: 所佔位元組數:4 最大值:2147483647 最小值:-2147483648

unsigned long: 所佔位元組數:4 最大值:4294967295 最小值:0

--------------------------------

double: 所佔位元組數:8 最大值:1.79769e+308 最小值:2.22507e-308

long double: 所佔位元組數:8 最大值:1.79769e+308 最小值:2.22507e-308

--------------------------------

float: 所佔位元組數:4 最大值:3.40282e+38 最小值:1.17549e-38

size_t: 所佔位元組數:4 最大值:4294967295 最小值:0

string: 所佔位元組數:28

type: ************size**************

參考:菜鳥教程c++資料型別

C 資料型別所佔位元組大小

對於指標型別,因為指標指向的是乙個位址,32位作業系統就是4位元組。64位作業系統那就是8位元組了。int這個型別佔作業系統乙個記憶體單元大小。早先16位作業系統乙個記憶體單元是16位,所以是2個位元組 32位系統乙個記憶體單元是是32位,所以是4位元組 64位作業系統,4位元組。整形加unsign...

C語言資料型別佔記憶體大小

c語言資料型別 使用sizeof計算各資料型別占用記憶體大小 includeint main struct test t typedef enumenum test typedef enumenum test2 typedef unionunion test char a 10 short b 10...

c 中資料型別佔記憶體位元組數

可用如sizeof char sizeof char 等得出 32位編譯器 char 1個位元組 char 即指標變數 4個位元組 32位的定址空間是2 32,即32個bit,也就是4個位元組。同理64位編譯器 short int 2個位元組 int 4個位元組 unsigned int 4個位元組...