sizeof和strlen的區別是:含義不同、功能不同。
1、含義不同
在定義時,要知道到strlen是壹個函數,它用來計算指定字符串str的長度,但不包括結束字符(即null字符)。而sizeof是壹個單目運算符,而不是壹個函數,它的參數可以是數組、指針、類型、對象、函數等。這就是strlen和sizeof的最本質區別。
2、功能不同
sizeof的功能能比較簡單,主要是:獲得保證,能容納實現所建立的最大對象的字節大小。而strlen的功能就比較多和繁瑣了,是返回字符串的長度,這個字符串可能是自己定義的,也可能是內存中隨機的,這個函數實際完成的功能是從代表該字符串的第壹個地址開始遍歷,直到遇到結束符NULL,返回的長度大小不包括NULL。
strlen的用法特點
strlen=string length,顧名思義,該函數是用來求解字符串的長度的,所以我們也應該探討壹下字符串的概念;我們都知道在編譯器中輸入printf(“Hello World!”),就會輸出“Hello World!”,這就是壹個字符串,類似這種由雙引號引起來的壹串字符稱為字符串面值,或者簡稱字符串。
接著我們就需要了解壹下“\0”這個轉義字符了,記住任何壹個字符串的結尾都會隱藏壹個“\0”,他是字符串的結束標誌,所以我們在用strlen函數讀取字符串的時候,當我們遇到“\0”時我們就要停止讀取,此時“\0”前字符的個數就是字符串的長度,註意:這裏的“\0"只是結束標誌,僅僅告訴我們strlen函數讀取到這裏就要停止了,“\0”不算做壹個字符!
以上內容參考百度百科-sizeof百度百科-strlen