954,483 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?

Reference Variable

By Aparna Shaji Peter on Nov 8th, 2009 6:23 pm

What will be the value of "++n" in the above code? Pls help..

int m=5;
int &n=m;
++n;

The vale of n will be 6.
This is because any operation you do on a reference, it also acts on its referenced variable.

Please, if you have a question, don't start a thread as a code snippet, start it as a forum thread. thanx

tkud
Posting Whiz in Training
235 posts since Sep 2009
Reputation Points: 13
Solved Threads: 46
 

The absolute easiest way to test this is to write a small console app with those code elements in it and step through the execution and watch what happens to the variable.

If you need a compiler:
http://www.microsoft.com/express

thines01
Postaholic
Team Colleague
2,424 posts since Oct 2009
Reputation Points: 445
Solved Threads: 402
 

but, what's the relation between reference and pointers..?

paruse
Newbie Poster
4 posts since Oct 2009
Reputation Points: 5
Solved Threads: 0
 

...a reference is treated the same as the original:

int main(void)
{
	int m=5;
	int &n=m;
	
	printf("m=%d n=%d\n", m, n); // m=5 n=5
	
	++n; // increments BOTH n and m
	
	printf("m=%d n=%d\n", m, n); // m=6 n=6
	
	return 0;
}


http://www.cprogramming.com/tutorial/references.html :
C++ references allow you to create a second name for the a variable that you can use to read or modify the original data stored in that variable. While this may not sound appealing at first, what this means is that when you declare a reference and assign it a variable, it will allow you to treat the reference exactly as though it were the original variable for the purpose of accessing and modifying the value of the original variable--even if the second name (the reference) is located within a different scope. This means, for instance, that if you make your function arguments references, and you will effectively have a way to change the original data passed into the function. This is quite different from how C++ normally works, where you have arguments to a function copied into new variables. It also allows you to dramatically reduce the amount of copying that takes place behind the scenes, both with functions and in other areas of C++, like catch clauses.

thines01
Postaholic
Team Colleague
2,424 posts since Oct 2009
Reputation Points: 445
Solved Threads: 402
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You