ABCE(AB, CD, EFG, HIJ, KLM, NOP, QRS);
この中で、前の2つが入力側、後ろの5つは出力、
関数で、値がちゃんと入っているのに、
この関数に戻ってきたとたん、全部0。
全部int型で、型は合ってるにもかかわらず、
値が戻ってこない?
なぜでしょうか?
こんなの、いつでも使ってるのに。
パラメータが多すぎるのかな。
int ABCE( int a, int b, int c, int d, int e, int f, int g )
{
a = 10;
b = 20;
c = 30;
d = 40;
e = 50;
f = 60;
g = 70;
}
int main()
{
int AB = 0;
int CD = 0;
int EFG = 0;
int HIJ = 0;
int KLM = 0;
int NOP = 0;
int QRS = 0;
ABCE( AB, CD, EFG, HIJ, KLM, NOP, QRS );
std::cout << AB << std::endl
<< CD << std::endl
<< EFG << std::endl
<< HIJ << std::endl
<< KLM << std::endl
<< NOP << std::endl
<< QRS << std::endl
return 0;
}
これで全部0が表示されるのはC言語の基本中の基本ですが。
値を設定したいならば、ポインタにするか参照にするかしてください。
一番楽なのは
int ABCE( int a, int b, int c, int d, int e, int f, int g )
を
int ABCE( int& a, int& b, int& c, int& d, int& e, int& f, int& g )
ただし、ここでクリアできたらかといって、なぜこうなるかを調べるのを怠らないでく
ださい。
ありがとうございます。
int ABCE( int& a, int& b, int& c, int& d, int& e, int& f, int& g )
で回避しました。
関数側は、
*Hc,*Hd,*He,*Hf,*Hg
という用い方をしないとだめですね。
勉強になりました。