【C語(yǔ)言經(jīng)典面試題】sizeof與strlen有什么區(qū)別?
這道經(jīng)典的面試題,我來(lái)跟你一起聊一聊。
1 面試原題
**根據(jù)你對(duì)C語(yǔ)言的掌握情況,請(qǐng)簡(jiǎn)要描述下 **sizeof 和 strlen 的區(qū)別。
2 知識(shí)點(diǎn)剖析
在C語(yǔ)言中,sizeof用于求一個(gè)變量或符號(hào)的內(nèi)存空間大小,而strlen一般用于求一個(gè)字符串的長(zhǎng)度,且這個(gè)長(zhǎng)度是不包括 '\\0'的。
3 示例代碼
為此,我寫了一段測(cè)試代碼:
?
#include
#include
?
int main(int argc, const char *argv[])
{
char *p = "123456";
?
printf("sizeof(p) = %d\\n", sizeof(p));
printf("strlen(p) = %d\\n", strlen(p));
?
return 0;
}
很簡(jiǎn)單,定義了一個(gè)字符串,分別使用strlen和sizeof求值;其值為:
通過運(yùn)行結(jié)果,我們可以知道,兩者是不一樣的。
4 總結(jié)
- strlen一般用于對(duì)字符串求長(zhǎng)度,且不包括'\\0'字符;
- sizeof一般用于對(duì)變量和符號(hào)求內(nèi)存大小;
- 兩者是有本質(zhì)區(qū)別的;還有一個(gè)注意點(diǎn)就是:sizeof對(duì)指針求值時(shí),與機(jī)器的字長(zhǎng)是相關(guān)的。
-
嵌入式
+關(guān)注
關(guān)注
5093文章
19178瀏覽量
307710 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137730 -
嵌入式技術(shù)
+關(guān)注
關(guān)注
10文章
360瀏覽量
36822 -
字符串
+關(guān)注
關(guān)注
1文章
585瀏覽量
20604 -
sizeof
+關(guān)注
關(guān)注
0文章
9瀏覽量
6442
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論