C++Tutorials

Pointers in c++

In this article, we will learn about pointers in c++.The pointer in C++ language is a variable, it is also known as locator or indicator that points to an address of a value.

Advantages of Pointer

  • Pointer reduces the code and improves the performance, it is used to retrieving strings, trees etc. and used with arrays, structures, and functions.
  • We can return multiple values from a function using a pointer.
  • It makes you able to access any memory location in the computer’s memory.

Disadvantages of Pointer

  • Uninitialized pointers might cause a segmentation fault.
  • The dynamically allocated block needs to be freed explicitly.  Otherwise, it would lead to a memory leak.
  • Pointers are slower than normal variables.
  • If pointers are updated with incorrect values, it might lead to memory corruption.

Symbols used in pointer

SymbolNameDescription
& (ampersand sign)Address operatorDetermine the address of a variable.
∗ (asterisk sign)Indirection operatorAccess the value of an address.

Declaring a pointer

int ∗   a; //pointer to int    
char ∗  c; //pointer to char    

Pointer Example

Let’s see the simple example of using pointers printing the address and value.

#include <iostream>  
using namespace std;  
int main()  
{  
int number=30;    
int ∗   p;      
p=&number;//stores the address of number variable    
cout<<"Address of number variable is:"<<&number<<endl;    
cout<<"Address of p variable is:"<<p<<endl;    
cout<<"Value of p variable is:"<<*p<<endl;    
   return 0;  
}  

Output:

Address of number variable is:0x7ffccc8724c4
Address of p variable is:0x7ffccc8724c4
Value of p variable is:30  

Pointer Program to swap 2 numbers without using 3rd variable

#include <iostream>  
using namespace std;  
int main()  
{  
int a=20,b=10,∗p1=&a,∗p2=&b;    
cout<<"Before swap: ∗p1="<<∗p1<<" ∗p2="<<∗p2<<endl;    
∗p1=∗p1+∗p2;    
∗p2=∗p1-∗p2;    
∗p1=∗p1-∗p2;    
cout<<"After swap: ∗p1="<<∗p1<<" ∗p2="<<∗p2<<endl;    
   return 0;  
}  

Output:

Before swap: ∗p1=20 ∗p2=10
After swap: ∗p1=10 ∗p2=20

Shaiv Roy

Hy Myself shaiv roy, I am a passionate blogger and love to share ideas among people, I am having good experience with laravel, vue js, react, flutter and doing website and app development work from last 7 years.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button