sizeof(type)是C語言中的一個(gè)運(yùn)算符,用于計(jì)算數(shù)據(jù)類型或?qū)ο笏加玫膬?nèi)存空間大小,單位是字節(jié),它可以用于計(jì)算基本數(shù)據(jù)類型、數(shù)組、結(jié)構(gòu)體、聯(lián)合體等的大小,sizeof()函數(shù)的返回值是一個(gè)整數(shù),表示所操作的數(shù)據(jù)類型或?qū)ο笤趦?nèi)存中占用的字節(jié)數(shù)。

10年的衛(wèi)濱網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整衛(wèi)濱建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“衛(wèi)濱網(wǎng)站設(shè)計(jì)”,“衛(wèi)濱網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
1、計(jì)算基本數(shù)據(jù)類型的大小
includeint main() { printf("Size of int: %lu bytes ", sizeof(int)); printf("Size of float: %lu bytes ", sizeof(float)); printf("Size of double: %lu bytes ", sizeof(double)); printf("Size of char: %lu bytes ", sizeof(char)); return 0; }
2、計(jì)算數(shù)組的大小
includeint main() { int arr[] = {1, 2, 3, 4, 5}; printf("Size of array: %lu bytes ", sizeof(arr)); return 0; }
3、計(jì)算結(jié)構(gòu)體的大小
include// 定義一個(gè)結(jié)構(gòu)體類型 struct Student { int id; char name[20]; float score; }; int main() { struct Student student1; printf("Size of struct Student: %lu bytes ", sizeof(student1)); return 0; }
4、計(jì)算指針的大小
includeint main() { int a = 10; int *p = &a; // p指向變量a的地址 int **pp = &p; // pp指向指針p的地址,即指向變量a的地址的指針的地址 int *ptr = (int *)pp; // 將指針變量pp強(qiáng)制轉(zhuǎn)換為指向int類型的指針,并賦值給ptr printf("Size of int pointer: %lu bytes ", sizeof(ptr)); // sizeof(ptr)的結(jié)果是指針變量的大小,而不是它所指向的變量的大小,因?yàn)橹羔槺旧硪残枰加脙?nèi)存空間,輸出結(jié)果為8字節(jié),注意:不同編譯器可能會有不同的結(jié)果,因?yàn)樗鼈兛赡軐χ羔樀拇笮∮胁煌膶?shí)現(xiàn)方式,通常情況下,指針的大小至少為8字節(jié),這是因?yàn)楝F(xiàn)代計(jì)算機(jī)通常使用64位處理器,而指針通常需要64位來存儲其地址,即使在32位系統(tǒng)上,指針的大小也可能為8字節(jié),在某些特殊情況下,例如嵌入式系統(tǒng)或舊式計(jì)算機(jī)上,指針的大小可能僅為4字節(jié)或更少。 return 0; }
是的,sizeof函數(shù)與動態(tài)內(nèi)存分配有關(guān),在使用malloc、calloc、realloc等動態(tài)內(nèi)存分配函數(shù)時(shí),可以使用sizeof()函數(shù)來獲取分配內(nèi)存塊的大小。
includeinclude include int main() { int n = 5; // 需要分配的元素個(gè)數(shù),假設(shè)為5個(gè)整數(shù)+1個(gè)字符串結(jié)束符'