sizeof簡(jiǎn)單例子 sizeof是什么意思?
sizeof是什么意思?通常用于計(jì)算變量或類(lèi)型的大小,單位為字節(jié)例如,sizeof(char)==1,sizeof(int*)==4。這些是計(jì)算類(lèi)型的大小,char是一個(gè)字節(jié),int*是4個(gè)字節(jié)(實(shí)際
sizeof是什么意思?
通常用于計(jì)算變量或類(lèi)型的大小,單位為字節(jié)
例如,sizeof(char)==1,sizeof(int*)==4。這些是計(jì)算類(lèi)型的大小,char是一個(gè)字節(jié),int*是4個(gè)字節(jié)(實(shí)際上,在32位系統(tǒng)中,指針是4個(gè)字節(jié),例如char*,void*)
另外,例如Chara,sizeof(a)==1
intb,sizeof(b)==4(這與編譯器有關(guān))另外,在計(jì)算結(jié)構(gòu)和類(lèi)的大小時(shí),sizeof還可以用來(lái)計(jì)算類(lèi)或結(jié)構(gòu)占用的字節(jié)數(shù)。然而,計(jì)算方法因編譯器的不同而不同,但基本算法是相同的。例如,char是1字節(jié),int*是4字節(jié),double是8字節(jié),double*是4字節(jié)。有些編譯器會(huì)對(duì)齊,有些則不會(huì)。但這通常意義不大。例如,在應(yīng)用程序中,1。計(jì)算數(shù)組元素?cái)?shù)
inta[]={1,2,3,4,5,6,7,8,9,20}
sizeof(a)/sizeof(a[0])是數(shù)組a的大小除以單個(gè)元素的大小,得到的結(jié)果是數(shù)組a的元素?cái)?shù),這比你自己的數(shù)更方便,特別是當(dāng)數(shù)比較大的時(shí)候,例如(inti=0I<sizeof(a)/sizeof(a[0])i){…}
這樣就不容易出錯(cuò),否則可能會(huì)有更少或更多的錯(cuò)誤
2。動(dòng)態(tài)應(yīng)用內(nèi)存(當(dāng)使用malloc、calloc、realloc時(shí))
例如,要應(yīng)用一段內(nèi)存來(lái)存儲(chǔ)30個(gè)double類(lèi)型
則可以使用(double*)malloc(sizeof(double)*30),即應(yīng)用8*30字節(jié)的空間,并將第一個(gè)地址返回給double*type
3的變量當(dāng)某些函數(shù)參數(shù)需要字節(jié)時(shí),系統(tǒng)在定義對(duì)象或變量時(shí)需要將地址賦給一個(gè)類(lèi)型。如果沒(méi)有實(shí)際的內(nèi)存大小,那么地址的分配就沒(méi)有意義,這會(huì)給內(nèi)存的釋放帶來(lái)麻煩。所以最小的內(nèi)存空間是1