C++ Pointer Operator

In this chapter we are going to study C++ Pointer Operators. C++ provides two pointer operators one is value at operator or indirection operator and address operator.

C++ Pointer Operator

C++ Pointer Operator

C++ Address of Operator (&)

  1. The & is a unary operator means it requires only one operand.
  2. The Address of Operator returns the memory address of its operand.
  3. Address of operator has the same precedence and right-to-left associativity as that of other unary operators.
  4. Symbol for the bitwise AND and the address of operator are the same but they don’t have any connection between them

C++ Address Operator

C++ Program : Address of Operator

#include<iostream>
using namespace std;
int main()
{
   int num=10;
   cout << "Value of number   : " << num << endl;
   cout << "Address of number : " << &num << endl;
}

Output :

Value of number : 10
Address of number : 0xffad72dc

Summary

PointExplanation
OperatorAddress of
TypeUnary Operator
Operates onSingle Operand
ReturnsAddress of the operand
Associativityright-to-left
ExplanationAddress of operator gives the computer's internal location of the variable.

C++ Indirection Operator *

  1. The Indirection operator * is a unary operator means it requires only one operand.
  2. Indirection Operator (*) is the complement of Address of Operator (&).
  3. Indirection Operator returns the value of the variable located at the address specified by its operand.

C++ Program : Indirection Operator

#include<iostream>
using namespace std;
int main()
{
   int num=10;
   int *ptr;
   ptr=&num;
   cout << " num = " << num << endl;
   cout << " &num = " << &num << endl;
   cout << " ptr = " << ptr << endl;
   cout<< " *ptr = " << *ptr << endl;
}

Output :

num = 10
&num = 0xffcc2bd8
ptr = 0xffcc2bd8
*ptr = 10

Calculations:

// Sample Code for Dereferencing of Pointer
*(ptr) = value at (ptr)
       = value at (0xffcc2bd8) 
       = 10
//Address in ptr is nothing but address of num

Summary

PointExplanation
OperatorIndirection Operator
TypeUnary Operator
Operates onSingle Operand
ReturnsValue at address of the operand)
Associativityright-to-left

Though multiplication symbol and the “Indirection Operator” symbol are the same still they don’t have any relationship between each other.

Both & and * have a higher precedence than all other arithmetic operators except the unary minus/plus, with which they share equal precedence.