C言語のstrlenとsizeofの違い
strlenとsizeofはどちらもC言語でよく使用される関数ですが、機能や目的が異なります。
- strlen関数:
strlen 関数は文字列の長さを取得するために使われます(終端ヌル文字の ‘\0’ は除きます)。宣言は次のとおりです。
size_t strlen(const char *str);
strはnull文字で終わる文字列へのポインタです。strlen関数は、文字列の文字をnull文字に到達するまでループし、文字の数を返します。
例えば、
char str[] = "Hello World";
size_t len = strlen(str); // len的值为11
- sizeof 演算子
sizeof演算子はコンパイル時にデータ型のサイズ、または変数のサイズ(バイト単位)を取得するために使用される。その使用方法は2つある。
- データ型として使用されます:
sizeof(type)
- 変数や式で使用される
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はデータ型や変数の大きさを取得します。