C言語 sizeofとstrlenの違いとは?使い分けを解説
sizeofとstrlenは異なる目的のために使用される2つの異なる関数です。
- sizeofは、関数ではなく演算子であり、データ型や変数がメモリ上で占めるバイト数を計算するために使用されます。 sizeofは、データ型や変数が占めるバイト数を表す整数値を返します。 C言語では、sizeof演算子を使用して、配列、構造体、ポインタなどのデータ型のサイズを取得することができます。
たとえば、
int a;
printf("%d\n", sizeof(a)); //输出sizeof(int)的大小
int arr[5];
printf("%d\n", sizeof(arr)); //输出数组arr的大小
- strlenとは、文字列の長さを計算するための関数であり、つまり文字列内の文字数(末尾のヌル文字’\0’を含まない)を指します。strlenは、文字列の長さを表す符号なし整数値を返します。
例えば、
char str[] = "Hello, World!";
printf("%d\n", strlen(str)); //输出字符串的长度
したがって、sizeofとstrlenの主な違いは:
- sizeofは、データ型や変数がメモリ内でどれだけのバイトを占めるかを計算するために使用され、整数値を返します。
- strlenは文字列の長さを計算するために使用され、符号なし整数値を返します。