しまだ – プログラミング – Home

通知
すべてクリア

[解決済] しまだ


パラメータが渡らない?!
 パラメータが渡らない?!
(@パラメータが渡らない?!)
ゲスト
結合: 19年前
投稿: 1
Topic starter  

ABCE(AB, CD, EFG, HIJ, KLM, NOP, QRS);
この中で、前の2つが入力側、後ろの5つは出力、
関数で、値がちゃんと入っているのに、
この関数に戻ってきたとたん、全部0。
全部int型で、型は合ってるにもかかわらず、
値が戻ってこない?
なぜでしょうか?

こんなの、いつでも使ってるのに。
パラメータが多すぎるのかな。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

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 )

ただし、ここでクリアできたらかといって、なぜこうなるかを調べるのを怠らないでく
ださい。


返信引用
しまだ
 しまだ
(@しまだ)
ゲスト
結合: 19年前
投稿: 16
 

ありがとうございます。
int ABCE( int& a, int& b, int& c, int& d, int& e, int& f, int& g )
で回避しました。
関数側は、
*Hc,*Hd,*He,*Hf,*Hg
という用い方をしないとだめですね。
勉強になりました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました