回覆列表
  • 1 # 藍風24

    1、用法不一樣

    sizeof可以用型別做引數。

    strlen只能用char*做引數,且必須是以""\0""結尾的。sizeof還可以用函式做引數,比如:

    short f();

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

    輸出的結果是sizeof(short),即2。

    2、功能不一樣

    sizeof的功能能是,獲得保證,能容納實現所建立的最大物件的位元組大小。

    strlen的功能是返回字串的長度,該字串可能是自己定義的,也可能是記憶體中隨機的,該函式實際完成的功能是從代表該字串的第一個地址開始遍歷,直到遇到結束符NULL。返回的長度大小不包括NULL。

    3、意思不一樣

    sizeof(...)是運算子,在標頭檔案中typedef為unsigned int,其值在編譯時即計算好了,引數可以是陣列、指標、型別、物件、函式等。

    strlen(...)是函式,要在執行時才能計算。引數必須是字元型指標(char*)。當陣列名作為引數傳入時,實際上陣列就退化成指標了。

  • 中秋節和大豐收的關聯?
  • 怎麼樣做好一個珠寶營業員?要具備哪些條件?