C言語のstrlenとsizeofの違い

strlenとsizeofはどちらもC言語でよく使用される関数ですが、機能や目的が異なります。

  1. strlen関数:

strlen 関数は文字列の長さを取得するために使われます(終端ヌル文字の ‘\0’ は除きます)。宣言は次のとおりです。

size_t strlen(const char *str);

strはnull文字で終わる文字列へのポインタです。strlen関数は、文字列の文字をnull文字に到達するまでループし、文字の数を返します。

例えば、

char str[] = "Hello World";
size_t len = strlen(str);  // len的值为11
  1. sizeof 演算子

sizeof演算子はコンパイル時にデータ型のサイズ、または変数のサイズ(バイト単位)を取得するために使用される。その使用方法は2つある。

  1. データ型として使用されます:
sizeof(type)
  1. 変数や式で使用される
sizeof(object)

sizeof()は符号なし整数(size_t型)を返し、指定されたオブジェクトのバイト数を示す。

例えば、

int arr[5];
size_t size1 = sizeof(int);   // size1的值为4(假设int类型占4个字节)
size_t size2 = sizeof(arr);   // size2的值为20(假设int类型占4个字节,数组长度为5)

strlenは文字列の長さを、sizeofはデータ型や変数の大きさを取得します。

bannerAds