C++ Pointers
C++ Pointers
http://www.tuto rialspo int.co m/cplusplus/cpp_po inte rs.htm Co pyrig ht © tuto rials po int.co m
C++ pointers are easy and fun to learn. Some C++ tasks are performed more easily with pointers, and other
C++ tasks, such as dynamic memory allocation, cannot be performed without them.
As you know every variable is a memory location and every memory location has its address defined which can
be accessed using ampersand (&) operator which denotes an address in memory. Consider the following which
will print the address of the variables defined:
#include <iostream>
int main ()
{
int var1;
char var2[10];
return 0;
}
When the above code is compiled and executed, it produces result something as follows:
type *var-name;
Here, type is the pointer's base type; it must be a valid C++ type and var-name is the name of the pointer
variable. T he asterisk you used to declare a pointer is the same asterisk that you use for multiplication. However,
in this statement the asterisk is being used to desig nate a variable as a pointer. Following are the valid pointer
declaration:
T he actual data type of the value of all pointers, whether integ er, float, character, or otherwise, is the same, a
long hexadecimal number that represents a memory address. T he only difference between pointers of different
data types is the data type of the variable or constant that the pointer points to.
#include <iostream>
using namespace std;
int main ()
{
int var = 20; // actual variable declaration.
int *ip; // pointer variable
return 0;
}
When the above code is compiled and executed, it produces result something as follows:
C++ Null Pointers C++ supports null pointer, which is a constant with a value of
zero defined in several standard libraries.
C++ pointer arithmetic T here are four arithmetic operators that can be used on
pointers: ++, --, +, -
C++ pointers vs arrays T here is a close relationship between pointers and arrays. Let
us check how?
C++ array of pointers You can define arrays to hold a number of pointers.
C++ pointer to pointer C++ allows you to have pointer on a pointer and so on.
Passing pointers to functions Passing an arg ument by reference or by address both enable
the passed arg ument to be chang ed in the calling function by the
called function.
Return pointer from functions C++ allows a function to return a pointer to local variable, static
variable and dynamically allocated memory as well.