|
References and Pointers in C++
I always know that when I'm running a C Course, the concept of pointers will be one of the more difficult elements for some of the delegates to grasp. No big deal, I can explain them in a number of ways, provide examples from different angle, and we'll be over the hiccough in progress in not too long a time. Pointers provide an exceptionally powerful capability, but C's an old language now and they're not exactly newbie-friendly.
You have C's pointers available in C++, but you also have references ...
* A Pointer is a variable the contains the address of another variable.
* A Reference is an alternative name that's assigned to a variable.
Thus, when you use a pointer, you need to prefix it with a "*" to mean "contents of" and to set it, you need to prefix it with "&" to mean address off, and that's simply not necessary with a reference.
Here's a sample from our C++ Course that displays data from an array using both the pointer way and the reference way:
int weights[] = {96,98,100,99,98,95};
for (int k=0; k < 6 ; k++) {
int &rWeight = weights[k];
int *pWeight = &weights[k];
cout << "rWeight " << rWeight << endl;
cout << "*pWeight " << *pWeight << endl << endl;
}
Do be careful - if you assign something to an existing reference, you're changing the value of the variable that it's aliased to and you're not making the reference point at something else .... but if you assign something to an existing pointer, you're changing what it points to.
(written 2006-07-10 08:17:32)
Associated topics are indexed under C233 - C and C based languages - OO in C++ - beyond the basics
Some other Articles
undefined reference to typeinfo - C++ error messageSimple polymorphism example - C++Effective web campaign?The case for exceptionsReferences and Pointers in C++Writing up new C / C++ notes.Busy day in MelkshamRemember a site's non-technical issues tooPerl delegate - much more than just a delegateThe Wilts and Berks Canal
|
2259 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 at 50 posts per page
This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
|
|