strlen和sizeof的區別

1.strlen函數

原型:size_t strlen( const char *string ); 只能傳入char型指針作爲參數

strlen(char*)函數求的是字符串的實際長度,它求得方法是從開始到遇到第一個'\0',如果你只定義沒有給它賦初值,這個結果是不定的,它會從aa首地址一直找下去,直到遇到'\0'停止。

  char aa[10];cout<<strlen(aa)<<endl; //結果是不定的

  char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //結果爲0

  char aa[10]="jun"; cout<<strlen(aa)<<endl; //結果爲3

 

2.sizeof函數

sizeof()返回的是變量聲明後所佔的內存數(單位是字節),不是實際長度,此外sizeof不是函數,僅僅是一個操作符,strlen是函數。
   sizeof(int)=4;  
  
int a[10];

   int *p=a

  sizeof(a)=40;

  siziof(p)=4;
 
在傳遞一個數組名到一個函數中時,它會完全退化爲一個指針  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章