Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C /C++アレイでa[i]==i [a]なのはなぜですか?


ここでは、CまたはC++での驚くべきトリックを1つ紹介します。配列の添え字A[i]はi[a]と書くこともできます。 C / C ++では、E1 [E2]は(*((E1)+(E2)))として定義されます。コンパイラは、配列要素にアクセスするために内部で算術演算を実行します。二項+演算子に適用されるルールの変換により、E1が配列オブジェクトであり、E2が整数の場合、E1[[E2]はE1配列のE2番目の要素を示します。したがって、A [B]は*(A + B)として定義できるため、B [A] =*(B + A)となります。つまり、基本的に同じものです。

#include <iostream>
using namespace std;
int main() {
   int array[] = {1, 2, 3, 4, 5, 6, 7};
   cout << "array[5] is " << array[5] << endl;
   cout << "5[array] is " << 5[array];
}

出力

array[5] is 6
5[array] is 6

  1. C /C++での多次元配列の初期化

    多次元配列では、配列の次元は1より大きい必要があります。次の図は、次元が3 x 3x3の多次元配列のメモリ割り当て戦略を示しています。 これは、多次元配列を初期化するためのC++プログラムです。 アルゴリズム Begin    Initialize the elements of a multidimensional array.    Print the size of the array.    Display the content of the array. End 例 #include<iostream>

  2. C ++で配列を使用するにはどうすればよいですか?

    配列は、連続したメモリ位置に配置された同じタイプの一連の要素であり、一意の識別子にインデックスを追加することで個別に参照できます。 C ++で配列を使用するには、最初に配列を宣言する必要があります。たとえば、 int arr[10]; これにより、サイズ10のint型の配列が宣言されます。これにより、10個の整数を連続したメモリに格納できます。その要素のいずれかを参照するには、配列アクセス演算子を使用して、アクセスする要素のインデックスを指定する必要があります。 C ++配列のインデックスは0から始まります。したがって、配列arrには、インデックス0、1、2、... 9の要素が10個あります