// this code illustrates pointers to basic types #include #include using namespace std; void multiply_by_8(int *value_pointer) { cout << "Value pointer's value: " << hex << int64_t(value_pointer) << endl; cout << "What value pointer points *at*, before multiplying: " << dec << *value_pointer << endl; // do it in two steps, just because *value_pointer = *value_pointer * 2; // alternative way: *value_pointer = *value_pointer << 2; // multiply by 4 } int main() { { // call multiply_by_8 to show passing data by pointer int value = 7; multiply_by_8(&value); cout << "7 times 8 = " << dec << value << endl; } { // further code manipulating a value through a pointer int some_number = 60; int *pointer_to_some_number = &some_number; cout << "Enter divisor: "; int divisor; cin >> divisor; *pointer_to_some_number /= divisor; cout << "After dividing by " << divisor << ", some number is " << some_number << endl; cout << "Address of some_number: " << hex << int64_t(&some_number) << endl; cout << " ... and its pointer: " << hex << int64_t(pointer_to_some_number) << endl; multiply_by_8(pointer_to_some_number); // note we just pass the pointer! cout << "At end, number is " << some_number << endl; } return 0; }