怎么用sizeof求數(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í)行時負擔(dān)。下面我們來看一個例子:
float array[20
]此時,sizeof(array)將返回80,因為一個float類型占用4個字節(jié),而數(shù)組有20個float,所以返回80
如果您想返回數(shù)組的元素數(shù),您可以這樣寫:
sizeof(array)/sizeof(array[0])
2當(dāng)我們使用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