天天看點

sizeof() 與 strlen() 的差別

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) );

}
           

運作結果如下:

sizeof() 與 strlen() 的差別

注:strlen() 遇到“ \0 ” 計算結束,并且“ \0 ”不會包含在計算的大小内。

char a[5] = "hello";

strlen(a)的計算結果為什麼等于11呢?

在進行該計算的時候,系統不會自動在末位添加“ \0 ”,是以統計到末位的時候,找不到“ \0 ”,就會繼續找,向後統計,直到找到“ \0 ”為止,計算結果也會因為運作環境的不同而有所不同。