関数の参照渡しのパラメータを渡す機能をテストするためにC++プログラムを作成しました。C++ - intを返す関数の参照渡しパラメータ
#include <iostream>
using namespace std;
int f(int &b) {
b = b + 1;
cout << b << endl;
return b;
}
int main() {
int t = 10;
cout << f(t) << " " << t << endl;
//cout << f(&t) << " " << t << endl;
system("PAUSE");
return 0;
}
このプログラムはf
関数の実行後t
の値には影響しませんん、なぜあなたは私に説明してもらえますか? b
パラメータが渡されているので、私は、プログラムの実行後に値が変わると思っていました。なぜなら、私は実際の変数をコピーしていないmain関数から処理しているからです。この場合、私はそれが11であると予想しますが、プログラムの実行によって影響を受けません。
どうしてですか?
はい、どうして増えませんか?それは参照によって渡されていませんか?それは 'main'関数内でも変更する必要がありますか? – Simon
これは、すべての出力を1行で期待して注文しているだけではありません。 2つの保証の上にそれを分割することは、あなたが望む順序で起こります。 – BoBTFish
@サイモン:いいえ、それは 't'をインクリメントします。何が起こるかは、**印刷**された値は、関数が呼び出される前の値です。私の更新された答えを見てください。 – NPE