sizeofstrlen的區(qū)別 strlen與sizeof()的區(qū)別?
strlen與sizeof()的區(qū)別?1、打開VS2017創(chuàng)建一個C 控制臺應(yīng)用程序。2、首先,功能不同。sizeof()是操作符,計(jì)算任意類型參數(shù)所占內(nèi)存大小。3、strlen()是函數(shù),計(jì)算以“
strlen與sizeof()的區(qū)別?
1、打開VS2017創(chuàng)建一個C 控制臺應(yīng)用程序。
2、首先,功能不同。sizeof()是操作符,計(jì)算任意類型參數(shù)所占內(nèi)存大小。
3、strlen()是函數(shù),計(jì)算以“0”結(jié)束的字符串長度,計(jì)算長度不包括“0”。
4、其次,參數(shù)不同。當(dāng)將字符數(shù)組作為sizeof()的參數(shù)時(shí),計(jì)算字符數(shù)組占用內(nèi)存大小。
5、當(dāng)將字符數(shù)組作為strlen()的參數(shù)時(shí),字符數(shù)組轉(zhuǎn)化為char*。
C語言中strlen與sizeof的區(qū)別是什么?
strlen和sizeof具體區(qū)別如下:
1、strlen為C語言庫函數(shù)之一;sizeof為一個運(yùn)算符,是C語言關(guān)鍵字之一。
2、strlen功能為求字符串長度, 參數(shù)為char *類型。聲明為
int strlen(const char *s)
會計(jì)算s開始,一直到字符串結(jié)束符"0"所有元素個數(shù),不包括0。
sizeof運(yùn)算對象可以是任何變量或類型,計(jì)算結(jié)果為該變量或類型占的實(shí)際長度(內(nèi)存字節(jié)數(shù))。
3、strlen作為函數(shù),其后參數(shù)必須在括號內(nèi);
sizeof在計(jì)算變量占字節(jié)數(shù)時(shí),可以帶括號也可以不帶,但如果計(jì)算數(shù)據(jù)類型占字節(jié)數(shù),則必須帶括號。
4、以字符串作為參數(shù)為例,具體說明二者區(qū)別如下:
(1) 定義char s[10] = "abcd"
strlen(s)為字符串長度,也就是實(shí)際字符數(shù),結(jié)果為4.
sizeof(s)為數(shù)組s的大小,值為10.
(2) 定義char *s = "abcd"
strlen(s)和strlen("abcd")相同,都是4。
sizeof(s)為指針占空間大小,取決于機(jī)器字長。32位機(jī)下,該值為4.
sizeof("abcd")為字符串實(shí)際占內(nèi)存大小,包括"0", 值為5。