C語(yǔ)言中對(duì)sizeof()和strlen()的說(shuō)明

1.sizeof函數(shù)   
sizeof函數(shù)返回表達(dá)式所占的內(nèi)存空間(以字節(jié)為單位)   
例:

#include<stdio.h> 
#define MONTHES 12 
int main(void) 
{ 
  int days[MONTHES] = {31,28,31,30,30,30}; 
  int len = sizeof(days)/days[0]; 
  printf("days:%d",len);
  return 0;
 }

這段程序輸出的結(jié)果為:days:48   
因?yàn)橐粋€(gè)int型在內(nèi)存中占4個(gè)字節(jié),而days數(shù)組有12個(gè)元素,故共48字節(jié)
另外若想求此數(shù)組長(zhǎng)度,可用如下語(yǔ)句:

 int len = sizeof(days) / sizeof(days[0]);  
``` 
 /*sizeof(days)是整個(gè)數(shù)組所占的字節(jié)數(shù),sizeof(days)時(shí)數(shù)組中一個(gè)元素所占的字節(jié)數(shù)*/   
 2.strlen函數(shù)   
此函數(shù)包含在string.h頭文件中。返回字符串的長(zhǎng)度 ,而非在內(nèi)存中的字節(jié)數(shù),  以"\0"為結(jié)束判斷,且'\0'不算入總數(shù)。  
3.sizeof和strlen比較   
strlen只計(jì)算字符串的長(zhǎng)度,且'\0'不計(jì)算在內(nèi)。而sizeof可計(jì)算各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)。
且sizeof在計(jì)算字符串長(zhǎng)度時(shí)(char類型在內(nèi)存中只占一個(gè)字節(jié),
故用sizeof函數(shù)計(jì)算字符串時(shí)相當(dāng)于計(jì)算其長(zhǎng)度),'\0'計(jì)算在內(nèi)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容