Double pointers and funciton play
#include <iostream>
using namespace std;
void modify(int **a) {
*a = *a + 1;
}
int main()
{
int a = 5;
int *p = &a;
int **q = &p;
cout << "a: " << a << endl; // 5
cout << "&a: " << &a << endl; // b4
cout << "p: " << p << endl; // b4
cout << "*p: " << *p << endl; // 5
cout << "&p: " << &p << endl; // b8
cout << "q: " << q << endl; // b8
cout << "*q: " << *q << endl; // b4
cout << "**q: " << **q << endl; // 5
cout << "&q: " << &q << endl; // c0
modify(q);
cout << "a: " << a << endl; // 5
cout << "&a: " << &a << endl; // b4
cout << "p: " << p << endl; // b8 moved by 4 bytes
cout << "*p: " << *p << endl; // garbage
cout << "&p: " << &p << endl; // b8
cout << "q: " << q << endl; // b8
cout << "*q: " << *q << endl; // b8 moved by 4 bytes
cout << "**q: " << **q << endl; // garbage
cout << "&q: " << &q << endl; // c0
return 0;
}
Last updated