C における配列の長さは、配列内の要素の数を指します。申告時に指定する必要があります。これは、すべての要素を格納するために必要なメモリを決定するために使用される配列のサイズとしても知られています。 C プログラミング言語には、配列の長さを見つける事前定義された関数はありませんが、以下に説明するさまざまな方法を使用して手動で決定できます。
- sizeof() 演算子の使用 ポインタ演算の使用 ループの使用
1. sizeof() 演算子の使用
sizeof 演算子は、変数とデータ型のサイズを計算するコンパイル時の単項演算子です。式または変数のサイズをバイト単位で表す整数値を返します。 sizeof 演算子は主に動的メモリ割り当てに使用されますが、配列の長さを見つけるためにも使用できます。
秘訣は、まず sizeof 演算子を使用して配列全体のサイズ (バイト単位) と 1 つの要素のサイズを見つけ、次に配列全体のサイズを 1 つの要素のサイズで割って、要素の数を取得することです。配列内で。
構文:
data_type size = sizeof(Array_name) / sizeof(Array_name[index]);>
上記の構文では、
- data_type: 配列の長さを格納する変数のタイプです (int、size_t など)。 Array_name: サイズを調べたい配列の名前です。 sizeof(Array_name): それ 配列全体のサイズをバイト単位で返す演算子です。 sizeof(Array_name[index]): 配列内の 1 つの要素のサイズをバイト単位で返します。 Index: 配列内の任意の要素のインデックスです。
例:
C
Java文字列連結
// C Program to calculate size of an array using sizeof()> // operator> #include> int> main()> {> >int> Arr[] = { 1, 2, 3, 4, 5 };> > >// variable to store size of Arr> >int> length =>sizeof>(Arr) />sizeof>(Arr[0]);> >printf>(>'The length of the array is: %d
'>, length);> >return> 0;> }> |
>
>出力
The length of the array is: 5>
時間計算量: 定数時間操作のみが実行されたため、O(1)。
空間の複雑さ: 余分なスペースが使用されていないため、O(1)。
2. ポインタ演算の使用
C ではポインター算術を使用して配列の長さを計算することもできます。ポインターを使用するこの解決策は、配列内の要素の数を見つけるために使用される単なるハックです。
構文:
data_type length = *(&arr + 1) - arr;>
上記の構文では次のようになります。
- &arr: 要素の配列へのポインタ。 (&arr + 1): ポインタ型としての配列の前のメモリのアドレスは、整数の配列へのポインタです。 *(&arr + 1) – arr: 配列の先頭と末尾の差を含みます。
例:
文字を文字列Javaに変換します
C
// C Program to calculate size of an array using pointer arithmetic> #include> int> main()> {> >int> Arr[] = { 1, 2, 3, 4, 5, 6 };> >// variable to store the size of Arr> >int> length = *(&Arr + 1) - Arr;> >printf>(>'Number of elements in Arr[] is: %d'>, length);> >return> 0;> }> |
>
>出力
Number of elements in Arr[] is: 6>
3. ループの使用
ループ メソッドは、C で配列の長さを計算するために使用されます。ループ メソッドは、配列のすべての要素を反復処理し、カウントをインクリメントします。
例:
C
// C Program to calculate size of an array using loop> #include> > int> arr_length(>int> arr[])> {> >int> i;> >int> count = 0;> >for>(i=0; arr[i]!=>' '>; i++)> >{> >count++;> >}> >return> count;> }> > int> main()> {> >int> arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};> >int> n;> > >n = arr_length(arr);> >printf>(>'Length of Array is: %d'>, n);> > >return> 0;> }> // This code is contributed by Susobhan Akhuli> |
>
>出力
Length of Array is: 10>
時間計算量: O(n) ここで、n は配列内の要素の数です。
空間の複雑さ: 余分なスペースが使用されていないため、O(1)。
bashの部分文字列
注記: これらのメソッドは、配列が同じスコープ内で宣言されている場合にのみ機能することに注意してください。これらのメソッドを、ポインタとして渡された配列に対して試行すると失敗します。これは配列の減衰が原因で発生します。
文字列 (文字の配列) の長さを見つける反復方法も、他の型の配列には適用できません。これは、これらの配列型には終了インジケータがないためです。 「 」 NULL 文字列の終わりを示す文字。