関数パラメータとしての C++ 配列

配列要素と配列名の両方を関数のパラメータとして使用して、関数間でデータを転送および共有できます。

関数を呼び出すときに、配列要素を実パラメータとして使用できます。これは、この型の変数 (またはオブジェクト) を実パラメータとして使用するのとまったく同じです。

配列名が関数パラメータとして使用される場合、実パラメータと仮パラメータの両方が配列名であり、同じ型である必要があります。通常のパラメータとしての変数とは異なり、配列名を使用してデータを転送する場合、渡されるのはアドレスです。仮パラメータ群と実パラメータ群の先頭アドレスは一致しており、以降の要素はメモリへの格納順に対応しており、対応する要素は同じデータ格納アドレスを使用しているため、実パラメータの要素数は異なります。パラメータ グループは、仮パラメータ グループの要素数より小さくてはなりません。呼び出される関数で仮パラメータグループの要素値が変更されると、呼び出し元関数の実パラメータグループの対応する要素値も変更されます。

【例】配列名を関数の引数として使用する。メイン関数で行列を初期化して各要素を出力し、サブ関数を呼び出して各行の要素の合計を計算し、その合計を各行の最初の要素に直接格納し、関数に戻った後に各行の要素を出力します。との関数。

void rowSum(int a[][4],int nRow)
{
    
    
	for (int i = 0; i < nRow;i++)
	{
    
    
		for (int j = 1; j < 4; j++)
		{
    
    
			a[i][0] += a[i][j];
		}
		cout << "第" << i+1 << "行元素的和为:" << a[i][0] << endl;
	}
}

int main()
{
    
    
	int arr[3][4] = {
    
     {
    
    1,2,3,4},{
    
    2,3,4,5},{
    
    3,4,5,6} };
	for (int i = 0; i < 3; i++)
	{
    
    
		for (int j = 0; j < 4; j++)
		{
    
    
			cout<<arr[i][j]<<"     ";
		}
		cout << endl;
	}
	rowSum(arr, 2);

	return 0;
}

実行結果:
ここに画像の説明を挿入
結果分析:
サブ関数が呼び出される前は、arr[i][0] の出力値はそれぞれ 1、2、3 であり、呼び出しが完了した後は、arr[i] の値が][0] はそれぞれ 10、14、18 です。つまり、サブ関数内の仮パラメータ要素の演算結果は、関数実パラメータの対応する要素に直接影響します。

[注意] 関数のパラメータとして配列を使用する場合、通常、配列の 1 次元目のサイズは指定されず、指定されても無視されます。

おすすめ

転載: blog.csdn.net/NuYoaH502329/article/details/132105769