c語言用sizeof求字節(jié)數(shù) 在C語言中用sizeof()測試數(shù)組或字符串大小的差異是什么?
在C語言中用sizeof()測試數(shù)組或字符串大小的差異是什么?1. 在回答這個問題之前,我們需要了解sizeof是什么。Sizeof是單目運算符,用于獲取數(shù)組或其他數(shù)據(jù)類型的大小。大小以字節(jié)為單位,其
在C語言中用sizeof()測試數(shù)組或字符串大小的差異是什么?
1. 在回答這個問題之前,我們需要了解sizeof是什么。Sizeof是單目運算符,用于獲取數(shù)組或其他數(shù)據(jù)類型的大小。大小以字節(jié)為單位,其返回類型為size 。尤其是,sizeof是編譯時運算符,也就是說,它不會增加任何執(zhí)行時負擔。下面我們來看一個例子:
float array[20
]此時,sizeof(array)將返回80,因為一個float類型占用4個字節(jié),而數(shù)組有20個float,所以返回80
如果您想返回數(shù)組的元素數(shù),您可以這樣寫:
sizeof(array)/sizeof(array[0])
2當我們使用sizeof獲取字符串大小時,我們應(yīng)該特別注意以下示例:
如果我們定義以下變量:
char*STR1=“asdfgh”
char STR2[]=“asdfgh”
使用sizeof分別獲取STR1和STR2的大小時,返回值不同:
sizeof(STR1),],返回值是4,因為STR1是指針。在32位計算機中,指針大小通常為4字節(jié),因此大小為4。
sizeof(STR2)。返回值是7,一個字符串。C語言默認在尾部添加0,因此STR2數(shù)組有7個元素,即a、s、D、F、G、H、0
在C語言中,sizeof()不需要包含頭文件,因為sizeof在C語言中實際上是一種單目運算符,也是關(guān)鍵字之一,所以可以直接使用。在C語言中,sizeof()是一個用來判斷數(shù)據(jù)類型或表達式長度的操作符。簡而言之,它的功能是返回對象或類型占用的內(nèi)存字節(jié)數(shù)。Sizeof計算對象的大小,也轉(zhuǎn)換為計算對象類型。換句話說,同一類型的不同對象的sizeof值是一致的。Sizeof計算表達式。編譯器根據(jù)表達式的最終結(jié)果類型確定大小。通常,它不計算表達式。通常,在32位編譯環(huán)境中,sizeof(int)的值是4。strlen(char*)函數(shù)計算字符串的實際長度,直到第一個“0”,然后返回計數(shù)值,不包括“0”。函數(shù)的作用是:返回聲明變量占用的內(nèi)存,而不是實際長度。
2. 作為sizeof參數(shù)的數(shù)組不會退化。如果傳遞給strlen,它將退化為指針。
3. Sizeof可以使用type作為參數(shù),strlen只能使用char*作為參數(shù),并且必須以“”0 “”結(jié)尾。