Right Page
Objective
To understand the implementation of multi-pointers in C++
#include <iostream>
int main() {
// Declare and initialize a variable
int val = 5;
// Declare a pointer to the variable
int* ptr = &val;
// Declare a double pointer to the pointer
int** dptr = &ptr;
// Print the value of the variable, dereferencing the pointer, and double dereferencing the double pointer
std::cout << "Value of val is " << val << std::endl;
std::cout << "Value pointed by ptr is " << *ptr << std::endl;
std::cout << "Value pointed by dptr is " << **dptr << std::endl;
return 0;
}
Discussion of Algorithm
- Start
- Declare and initialize a variable
- Declare a pointer to the variable
- Declare a double pointer to the pointer
- Print the value of the variable, dereferencing the pointer, and double dereferencing the double pointer
- End
Left Page
Representation using Flow Diagram
+----------------------------------+ | | | Start | | | | +----------------------------------+ | V +----------------------------------+ | | | Declare and initialize val | | | | +----------------------------------+ | V +----------------------------------+ | | | Declare pointer ptr | | | | +----------------------------------+ | V +----------------------------------+ | | | Assign address of val to ptr | | | | +----------------------------------+ | V +----------------------------------+ | | | Declare double pointer dptr | | | | +----------------------------------+ | V +----------------------------------+ | | | Assign address of ptr to dptr | | | | +----------------------------------+ | V +----------------------------------+ | | | Print value of val | | | | +----------------------------------+ | V +----------------------------------+ | | | Print value pointed by ptr | | | | +----------------------------------+ | V +----------------------------------+ | | | Print value pointed by dptr | | | | +----------------------------------+ | V +----------------------------------+ | | | Exit | | | | +----------------------------------+
Tabular Dry Run
val | *ptr | **dptr | output 5 | 5 | 5 | print value of val, *ptr, *dptr
Output
Value of val is 5 Value pointed by ptr is 5 Value pointed by dptr is 5