回覆列表
  • 1 # 1622355338

    strlen和sizeof具體區別如下:

    1、strlen為C語言庫函式之一;sizeof為一個運算子,是C語言關鍵字之一。

    2、strlen功能為求字串長度, 引數為char *型別。宣告為

    int strlen(const char *s);

    會計算s開始,一直到字串結束符"\0"所有元素個數,不包括\0。

    sizeof運算物件可以是任何變數或型別,計算結果為該變數或型別佔的實際長度(記憶體位元組數)。

    3、strlen作為函式,其後引數必須在括號內;

    sizeof在計算變數佔位元組數時,可以帶括號也可以不帶,但如果計算資料型別佔位元組數,則必須帶括號。

    4、以字串作為引數為例,具體說明二者區別如下:

    (1) 定義char s[10] = "abcd";

    strlen(s)為字串長度,也就是實際字元數,結果為4.

    sizeof(s)為陣列s的大小,值為10.

    (2) 定義char *s = "abcd";

    strlen(s)和strlen("abcd")相同,都是4。

    sizeof(s)為指標佔空間大小,取決於機器字長。32位機下,該值為4.

    sizeof("abcd")為字串實際佔記憶體大小,包括"\0", 值為5。

  • 中秋節和大豐收的關聯?
  • 低碳調質鋼在什麼情況下焊接需要預熱?