Home »
C++ programming language
A simple example of pointer in C++
In this article, we are going to learn about pointers in C++, how pointers are declared, how they initialized and how we can access values and address using the pointer?
Submitted by IncludeHelp, on May 25, 2018
We have already discussed it in C programming pointers, here I am writing a simple example in C++ programming language to declare, initialize and access the pointers.
Pointer in C++
Pointers are the variables (a type of special), which stores the address of another variables.
Pointers can store address of other normal variable as well as store the address of another pointer variable. The pointer which stores the address of another pointer variable is known as double pointer or pointer to pointer.
Let's understand both cases through examples...
Declare a pointer, that will store the address of a normal variable
In this example, we will declare an integer variable and an integer pointer that will store the address of the integer variable.
#include <iostream>
using namespace std;
int main()
{
int a; //normal integer variable
int *ptr; //integer pointer declaration
//pointer initialization
ptr = &a;
//printing the address of a by using "&a" and
//through pointer variable
cout<<"Address of a: "<<&a<<endl;
cout<<"Address of a: "<<ptr<<endl;
//assigning a value to variable a
//and will print using 'a' and pointer 'ptr'
a = 108;
cout<<"Value of a: "<<a<<endl;
cout<<"Value of a: "<<*ptr<<endl;
//changing the value of a using pointer
*ptr = 251;
cout<<"Value of a: "<<a<<endl;
cout<<"Value of a: "<<*ptr<<endl;
return 0;
}
Output
Address of a: 0x7ffede9ec62c
Address of a: 0x7ffede9ec62c
Value of a: 108
Value of a: 108
Value of a: 251
Value of a: 251
Here,
- &a will return the address of a.
- ptr will contain the address of a so it will also return address of a.
- *ptr will return the value of a (because address of a is assigned to ptr).
Declare a pointer to pointer, that will store the address of a another pointer
In this example, we will declare an integer variable and 1) an integer pointer, 2) a pointer to pointer that will store the address the address of first pointer (integer pointer).
#include <iostream>
using namespace std;
int main()
{
int a; //normal integer variable
int *ptr; //integer pointer declaration
int **dptr; //pointer to pointer declaration
//pointer initialization
ptr = &a;
//pointer to pointer initialization
dptr = &ptr;
//printing the addresses of a using pointer
//and address of pointer using pointer to pointer
a = 108;
cout<<"Address of a: "<<ptr<<endl;
cout<<"Address of ptr: "<<dptr<<endl;
//assigning value to 'a' and will print using
//pointer and pointer to pointer
cout<<"Value of a: "<<*ptr<<endl;
cout<<"Value of a: "<<**dptr<<endl;
return 0;
}
Output
Address of a: 0x7ffc1d6b2574
Address of ptr: 0x7ffc1d6b2578
Value of a: 108
Value of a: 108
Here,
- ptr contains the address of a so it will return address of a.
- dptr contains the address of ptr so it will return address of the ptr.
- *ptr will return the value of a.
- **dptr will also return the value of a.
Note: To get the value of ptr, which is actually the address of a, we can use *dptr.
I hope this post will be helpful to understand the concept of pointers in C++. Here, I just wrote simple examples of pointers in C++. If you want to practice more examples on pointers, visit: C pointers examples/programs.