1

ri が i への参照である場合、これの出力が 10 10 である理由がよくわかりません...

int i, &ri = i;
i = 5; 
ri = 10;
std::cout << i << " " << ri << std::endl;

誰かが私のためにこれを片付けてもらえますか?

同様に、

int i = 0, &r1 = i;
double d = 1, &r2 = d;

r2 = r1;
std::cout << r2;  // output 0
i = r2;
std::cout << i;  // output 0
r1 = d;
std::cout << r1; // output 0

i = r2 で、d = 1 のときに r2 が d への参照である場合、出力が 1 にならないのはなぜですか? また、r1 = d のとき、出力も 1 にならないのはなぜですか?

4

2 に答える 2

0

参照は、オブジェクトのエイリアス (別名) と考えてください。参照に対して行うことは、それが参照するオブジェクトに対して行うことです。ここ:

int i, &ri = i;

あなたは、ri は i の別名だと言います。したがって、ここに:

i = 5;

あなたはi = 5を設定し、ここで

ri = 10;

i = 10 に設定します。

于 2013-10-03T04:00:46.170 に答える
0

参照は、元のアイテムに対処するのと同じです。Like *(& some_variable)

あなたのコードでは、したがって行

r2 = r1;

dの値をの値に設定しiます0

それ以降、すべての値は0

r1名前をref_ir2に置き換えるref_dと意味があります。

ここで試してください:

http://ideone.com/SHxQLN

int i = 0, &ref_i = i;
double d = 1, &ref_d = d;

ref_d = ref_i;       // <<-------------------- Put value of i into d
std::cout << ref_d; 

i = ref_d;
std::cout << i;

ref_i = d;
std::cout << ref_i;  
于 2013-10-03T03:46:47.113 に答える