1 sizeof是操做符,而strlen是庫函數;數組
2 sizeof的參數能夠爲任意變量或類型,而strlen必須以char*作參數,且字符串必須以‘/0’結尾;函數
3 數組名用做sizeof參數時不會退化,而用做strlen參數時就會退化成指針;指針
4 大部分編譯器在編譯期計算sizeof的值,因此其結果能夠用做常量,例如能夠定義數組的維數,而strlen必定要到運行期纔會被計算;字符串
5 sizeof的參數若是是變量名,能夠不加括號,由於其是運算符不是函數,而strlen必須加括號;編譯器
6 在計算字符串的長度時strlen(str)+1==sizeof(str)。編譯