天天看點

sizeof與strlen的差別:面試回答

示例:

char *ptr = "hello world";
char str[] = "hello world";

sizeof(ptr) = B
sizeof(str) = B
strlen(ptr) = B
strlen(ptr) = B
           

面試回答總結:

我認為sizeof()與strlen()有以下幾個差別。strlen是一個函數,它測量的是字元串中除去’\0’以外的字元數;而sizeof是一個關鍵字,含義可用作運算符。它測量的是對象或者類型所占的記憶體的位元組數,包括’\0’在内;對于strlen的使用沒有什麼限制。而當sizeof測量指針的長度,得到的是位址的長度;當sizeof測量數組的時候,得到的是整個數組的長度;當函數調用數組做為參數的時候,用sizeof測量得到的仍然是一個指針的長度。