測定某個類型所占的內(nèi)存空間 即字節(jié)個數(shù)如 sizeof(char ) 等于 1 因為不同的系統(tǒng)類型 所占的字節(jié)數(shù)不同,所以提供了這個函數(shù),測試系統(tǒng)基本類型所占的內(nèi)存空間 。 擴展類型也是基本理性組成的,所以SIEFOF 用來測試類型長度。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供曾都網(wǎng)站建設(shè)、曾都做網(wǎng)站、曾都網(wǎng)站設(shè)計、曾都網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、曾都企業(yè)網(wǎng)站模板建站服務(wù),10年曾都做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
strlen()只是統(tǒng)計字符串的長度,統(tǒng)計到'\0'結(jié)束,但不包括'\0',這個與sizeof()不一樣。
對于用雙引號引起來的字符串,系統(tǒng)默認最后一位字符為'\0',如你自己定義的:
char a[]="china";
char b[]={"china"};
另外,數(shù)組初始化還可以是一個字符一個字符賦值,如:
char c[]={'c','h','i','n','a'};
char d[]={'c','h','i','n','a','\0'};
但系統(tǒng)不會自動給你在最末位添加'\0’
所以在統(tǒng)計char c[]={'c','h','i','n','a'}時,統(tǒng)計到a時,系統(tǒng)還沒找到\0,所以會繼續(xù)統(tǒng)計,直到找到'\0'為止。所以就有你第三個值為11的情況,這個根據(jù)不同的運行環(huán)境而定。
sizeof是C語言中保留關(guān)鍵字,也可以認為是一種運算符,單目運算符。
在 Pascal 語言中,sizeof() 是一種內(nèi)存容量度量函數(shù),功能是返回一個變量或者類型的大?。ㄒ宰止?jié)為單位);在 C 語言中,sizeof() 是一個判斷數(shù)據(jù)類型或者表達式長度的運算符。
在Pascal 語言與C語言中,對 sizeof() 的處理都是在編譯階段進行。
相關(guān)定義
sizeof是C/C++中的一個操作符(operator),簡單的說其作用就是返回一個對象或者類型所占的內(nèi)存字節(jié)數(shù)。
MSDN上的解釋為:
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t.
其返回值類型為size_t,在頭文件stddef.h中定義。