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

C ++のアレイディケイとは何ですか?


アレイのタイプと次元の喪失は、アレイの減衰として知られています。これは、ポインタまたは値によって配列を関数に渡すときに発生します。最初のアドレスは、ポインタである配列に送信されます。そのため、配列のサイズは元のサイズではありません。

これは、C++言語での配列減衰の例です

#include<iostream>
using namespace std;
void DisplayValue(int *p) {
   cout << "New size of array by passing the value : ";
   cout << sizeof(p) << endl;
}
void DisplayPointer(int (*p)[10]) {
   cout << "New size of array by passing the pointer : ";
   cout << sizeof(p) << endl;
}
int main() {
   int arr[10] = {1, 2, };
   cout << "Actual size of array is : ";
   cout << sizeof(arr) <endl;
   DisplayValue(arr);
   DisplayPointer(&arr);
   return 0;
}

出力

Actual size of array is : 40
New size of array by passing the value : 8
New size of array by passing the pointer : 8

アレイの減衰を防ぐため

アレイの減衰を防ぐには、次の2つの方法があります。

  • 配列のサイズをパラメーターとして渡すことで配列の減衰を防ぎ、配列のパラメーターでsizeof()を使用しないでください。

  • 参照によって配列を関数に渡します。配列がポインタに変換されるのを防ぎ、配列の減衰を防ぎます。

これは、C++言語での配列の減衰を防ぐ例です。

#include<iostream>
using namespace std;
void Display(int (&p)[10]) {
   cout << "New size of array by passing reference: ";
   cout << sizeof(p) << endl;
}
int main() {
   int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
   cout << "Actual size of array is: ";
   cout << sizeof(arr) <<endl;
   Display(arr);
   return 0;
}

出力

Actual size of array is: 40
New size of array by passing reference: 40

  1. 配列を最大最小形式で再配置するC++プログラム

    ソート/非ソート方式で配置できる整数配列が与えられます。タスクは、値が並べ替えられていない場合、最初に配列を並べ替えてから、配列の最初の要素が最大値、2番目が最小値、3番目が2番目に大きい値、4番目が次のように配列を配置することです。 2番目に小さい値など。 このためのさまざまな入出力シナリオを見てみましょう- 入力 − int arr [] ={7、5、2、3、4、9、10、5} 出力 −配置前の配列:2 3 4 5 5 7 9 10最大最小形式での配列の再配置は次のとおりです:10 2 9 3 7 4 5 5 説明 − {7、5、2、3、4、9、10、5}の値を含む整数型の配列が

  2. イメージアレイとは何ですか? C++の例で説明する

    配列は、データのコレクションを格納および取得するための便利な方法です。 OpenCVでは、この概念を使用して、画像配列に複数の画像を読み込み、配列のインデックス番号を使用してそれらを表示できます。 次のプログラムは、マトリックス配列に複数の画像をロードし、インデックス番号で呼び出される配列の画像を表示します。 例 #include<iostream> #include<opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; int main(int argc,const char**