sizeof と strlen の分析

sizeof と strlen は C 言語の 2 つの異なる演算子で、それぞれオブジェクトのサイズと文字列の長さを取得するために使用されます。

サイズ演算子:

  •         sizeof は、オブジェクトまたはデータ型のサイズをバイト単位で取得するために使用される演算子です。
  • 基本データ型 (int、float など) やカスタム データ型 (構造体、配列など) を含むあらゆるデータ型に使用できます。
  •         sizeof 演算子はコンパイル時に評価され、実行時の計算を必要としない定数式を返します。
  • たとえば、sizeof(int) は整数型 int のサイズを返し、sizeof(struct Person) はカスタム構造体 Person のサイズを返します。
int x = 10;
size_t size = sizeof(x); // size将包含int类型占用的字节数,通常为4(在大多数系统上)。

 

strlen 関数:

  • strlen は、文字列の長さ (文字列の末尾のヌル文字「\0」を除く) を取得する関数です。
  • これは文字列、つまり NULL 文字 ('\0') で終了する文字配列または文字ポインターでのみ使用できます。
  • strlen 関数は、実行時に NULL 文字が見つかるまで文字列を反復処理し、文字数を返します。
  • たとえば、strlen("Hello") は 5 を返し、strlen(str) は文字列変数 str の長さを返します。
char str[] = "Hello, World!";
size_t length = strlen(str); // length将包含字符串的长度,不包括null字符,所以通常为12。

 

概要:
sizeof はオブジェクトまたはデータ型のサイズを取得するために使用される演算子であり、strlen は文字列の長さを取得するために使用される関数です。
sizeof はコンパイル時に評価されて定数式を返しますが、strlen は実行時に文字列の長さを計算します。
sizeof は任意のデータ型で使用できますが、strlen は文字列でのみ使用できます。
sizeof はオブジェクトまたはデータ型のサイズ (バイト単位) を返し、strlen は文字列の長さ (null 文字を除く文字数) を返します。

おすすめ

転載: blog.csdn.net/m0_73800602/article/details/131950816