+ 1
Just re-assign a reference Variable? or have i?
Read in books..., watched videos about reverence variable and that you can't re-assign once assigned (it's a fixed connection) so...why does this compile o.k, (only relevant code show) int a = 10; int b = 20; int &c = a; cout << a << ' ' << c << endl; c = b; // <-- should not be able to do this; cout << b << ' ' << c << endl; Am i mis-understanding something?
3 Respostas
+ 1
ahhhhh thank you...didn't think to check the value of 'a'.
+ 1
int &c = a means that c is now referencing the same memory area as a, what ever changes that are made in either c or a will reflect in both variables meaning they both refer to the same place in memory.
c=b; here c is not referring to the memory area of b like it did with a, instead its just assigning the value of b so a and b and c will all equal 20 at this point;
If you change the value of c and print b, the value of b will remain the same only c and a would of changed as they refer to the same place in memory.