1. Compile and run the following C++ program: #include #include using std::cout; using std::endl; int main() { int integer1, * p1, ** p2; integer1 = 10; // line 11 p1 = &integer1; // line 12 p2 = &p1; // line 13 cout << "integer1 = " << integer1 <
1. Compile and run the following C++
#include <iostream> #include <cstdlib> using std::cout; using std::endl;
int main() {
int integer1, * p1, ** p2; integer1 = 10; // line 11 p1 = &integer1; // line 12 p2 = &p1; // line 13 cout << "integer1 = " << integer1 <<endl; // line 15 cout << "p1 = " << p1 << endl; // line 16 cout << "p2 = " << p2 << endl; // line 17 return EXIT_SUCCESS; } // main
2. Suppose after the declaration of variables integer1, p1, and p2, we have the following memory map:
Symbol Name | Type | Memory Address
integer1 | int | 80
p1 | int * | 84
p2 | int ** | 92
(a) Fill in the “Value” column in the in the memory map to reflect the changes that are caused by lines 11, 12, and 13.
(b) If we substitute lines 15–17 with the the following two statements, then what will be the output of the program?
(*p1)++; cout << "integer1 = " << *p1 << endl;
(c) Will the output of the program be the same if we substitute the above two lines with the following two statements?
integer1++; cout << "integer1 = " << *p1 << endl;
(d) Will the output of the program be the same if we substitute the above two lines with the following two statements?
*p2++; cout << "integer1 = " << integer1 << endl;
(e) Explain why the outputs of parts (c) and (d) are the same or different from each other.
3. Consider the following program and answer the questions below: #include <iostream> #include <cstdlib> int main() { int * p1; int ** p2; p2 = p1; return EXIT_SUCCESS;
} // main
(a) What does the variable p2 represent?
(b) Will this program compile? Why or why not?
Step by step
Solved in 6 steps with 2 images