2016-10-02 10 views
-4

この関数は、この関数を呼び出すために使用する行列の元の値を変更しますか? ありがとうございました。関数の呼び出しによる呼び出しは、パラメータの元の値を変更しますか?

void powerup(char mat[9][9]) 
{ 
    for(int i=0;i<9;++i) 
    { 
    for(int j=0;j<9;++j) 
    { 
     mat[i][j]=su[i][j]; 
    } 
    } 
} 
+3

これは価値があるとは思われません。 –

+1

あなたはポインタを使って呼び出しています(そして値を変更します) –

+0

あなたの質問には研究努力が示されていないので、私はあなたを下降させました。それは良い質問です。なぜなら、非自明なパラメータ(C++のものは何ですか?xD)には何が起こるのか自明ではありませんが、今はどうなっているのでしょうか。情報の追加も検討してください。 – itmuckel

答えて

2

はい、この機能は、マトリックスの元の値を変更します。

値による呼び出しは、関数への引数がスタックにコピーされることを意味します。この関数は、外部の値を変更せずにこれらのコピーを変更することができます。しかし、これは配列では決してありません。

配列をパラメータとして使用する場合は、常にポインタに変換されます。これは

void powerup(char mat[9][9]) 

void powerup(char (*mat)[9]) 

を意味同じです。

+0

ありがとうございました。 – Allen

関連する問題