1. 程式人生 > >面試題3——sizeof和strlen的區別

面試題3——sizeof和strlen的區別

sizeof和strlen有如下區別:
(1)sizeof是一個操作符,strlen是庫函式;
(2)sizeof的引數可以是資料的型別,也可以是變數,而strlen只能以結尾為’\0’的字串做引數;
(3)編譯器在編譯時就計算出了sizeof的結果。而strlen函式必須在執行時才能計算出來。並且sizeof計算的是資料型別佔記憶體的大小,而strlen計算的是字串實際的長度;
(4)陣列做sizeof的引數不退化,傳遞給strlen就退化為指標了。

有些是操作符看起來像是函式,而有些函式名看起來又像操作符,這類容易混淆的名稱應加以區分,負責遇到陣列名這類特殊資料型別做引數時就很容易出錯。最容易混淆的操作符就是sizeof