sizeof() 求位元組運算符,求某個内容實際占用記憶體的位元組數。
strlen() 函數,求字元串的大小。
void main()
{
char a[5] = "hello";
char b[] = "world!!";
printf("sizeof(a)=%d\n",sizeof(a) );
printf("sizeof(b)=%d\n",sizeof(b) );
printf("strlen(a)=%d\n",strlen(a) );
printf("strlen(b)=%d\n",strlen(b) );
}
運作結果如下:
注:strlen() 遇到“ \0 ” 計算結束,并且“ \0 ”不會包含在計算的大小内。
char a[5] = "hello";
strlen(a)的計算結果為什麼等于11呢?
在進行該計算的時候,系統不會自動在末位添加“ \0 ”,是以統計到末位的時候,找不到“ \0 ”,就會繼續找,向後統計,直到找到“ \0 ”為止,計算結果也會因為運作環境的不同而有所不同。