#include #include using namespace std; void objectPointers(){ vector* v = new vector; cout << "Address: " << v << endl; for( int i = 0; i < 10; i++ ){ (*v).push_back(i); } cout << "Address: " << v << endl; for( int i = 0; i < (*v).size(); i++ ){ cout << (*v)[i] << endl; } cout << "Address: " << v << endl; } void objectPointersBetterApproach(){ vector* v = new vector; for( int i = 0; i < 10; i++ ){ v->push_back(i); } for( int i = 0; i < v->size(); i++ ){ cout << v->at(i) << endl; } } void objectPointers2(){ vector* vPtr; // declare a vector pointer, initially points somewhere random vector vec; // declare a vector object vPtr = &vec; vPtr->push_back(10); vPtr->push_back(20); for( int i = 0; i < vec.size(); i++ ){ cout << i << ": " << vec[i] << endl; } cout << "Address: " << vPtr << endl; } void address(){ int x = 10; int* xPtr = &x; cout << "Address: " << xPtr << endl; cout << "Value: " << *xPtr << endl; } void changingValue(){ int x = 10; int* xPtr = &x; cout << "Address: " << xPtr << endl; (*xPtr)++; cout << "Address: " << xPtr << endl; cout << "x: " << x << endl; } void precedence(){ int x = 10; int* xPtr = &x; cout << "Address: " << xPtr << endl; *xPtr++; cout << "Address: " << xPtr << endl; cout << "x: " << x << endl; cout << "*xPtr: " << *xPtr << endl; } void twoPointers(){ int x = 10; int* xPtr = &x; int* x2Ptr; x2Ptr = xPtr; (*x2Ptr) = 20; cout << "x: " << x << endl; cout << "xPtr: " << xPtr << endl; cout << "x2Ptr: " << x2Ptr << endl; } int main(){ twoPointers(); }