Reference Variable

paruse 0 Tallied Votes 205 Views Share

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

Ancient Dragon commented: This is not a code snippet, but a normal c++ question. -5
int m=5;
int &n=m;
++n;
tkud 0 Posting Whiz in Training

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

thines01 401 Postaholic Team Colleague Featured Poster

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

paruse -5 Newbie Poster

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

thines01 401 Postaholic Team Colleague Featured Poster

...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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.