sizeof和strlen的區別

    sizeof   是一個物理層面的操作符,通常在編譯期間確定,得到的是一個對象/類型在棧上的投影大小。
    strlen   是一個邏輯層面的函數,運行時求值,得到的是一個   char[]   中第一個   '\0 '   之前所有字符的數量。
   

    (1)sizeof操作符的結果類型是size_t,它在頭文件中的typedef是unsigned int類型,該類型保證能容納實現所建立的最大對象的字節大小。

    (2)sizeof是運算符,strlen是函數。

    (3)sizeof可以用類型作參數,strlen只能用char*作參數,且必須是以“\0”結尾的。sizeof還可以用函數作參數。比如:

              short   f();

              printf("%d\n",sizeof(f());

    (4)strlen的結果要在運行的時候才能計算出來,計算字符串的長度,不是類型佔內存的大小。

    (5)數組作爲參數傳遞給函數時,傳遞的是指針不是數組,傳的是數組的首地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章