首先需要說明的是sizeof和strlen都可以求長度,但是卻有很大的區別,簡單來說可以概括為以下幾點:
1、sizeof是一個關鍵字,而strlen確實一個函數。
2、sizeof求的是字節長度,而strlen求的卻是實際長度。
比如int a=1;sizeof(a)==4而strlen(a)=1
3、sizeof求的是分配過來的長度,而strlen求的卻是實際使用的長度。
比如:char a[30]="abcd";
sizeof(a)=30;而strlen(a)=4;
4、strlen求的長度是以'\0'結束的。
比如char a[30];strlen(a)的結果是不定的,而sizeof(a)=30;
同理:char a[30]={'a','b','c'};對於strlen來說也是不定的,而sizeof卻是30.
以上四點便是sizeof和strlen的簡要區別,給自己提個醒,也給別人提個醒。
另外@小知了了指出,sizeof是在編譯是計算的,而strlen是在運行是計算的。
版權所有,歡迎轉載,但是轉載請注明出處:瀟一
