In: Computer Science
Given the following code segment, tell the output if it is part of an executable program. Assume the addresses of the variables, a and b, are 0012A32A and 0012A340, respectively.
int* intPtr1, *intPtr2;
int a = 10, b;
intPtr1 = &a;
cout<< "The data in a is "<<a<<endl;
cout << "The address of a is "<<&a<<endl;
cout <<"The data in intPtr1 is "<< intPtr1 <<endl;
cout <<"The data in the variable pointed by intPtr1 is "<< * intPtr1<<endl;
a++;
cout << "After changing a: "<<endl;
cout <<"The data in the variable pointed by intPtr1 is "<< * intPtr1<<endl;
b = *intPtr1;
cout << "The value in b is "<<b<<endl;
a++;
cout << "After changing a: "<<endl;
cout <<"The data in the variable pointed by intPtr1 is "<< * intPtr1<<endl;
cout << "The value in b is "<<b<<endl;
Output:
Please Use C++
The data in a is 10
The address of a is 0012A32A
The data in intPtr1 is 0012A32A
The data in the variable pointed by intPtr1 is 10
After changing a:
The data in the variable pointed by intPtr1 is 11
The value in b is 11
After changing a:
The data in the variable pointed by intPtr1 is 12
The value in b is 11
Explanation inside comment:
int *intPtr1, *intPtr2;
int a = 10, b;
//initialize a = 10
intPtr1 = &a;
//intptr1 stores address of variable a
//intptr1 = 0012A32A
cout << "The data in a is " << a << endl;
//print value stored in a = 10
cout << "The address of a is " << &a << endl;
//print address of a = 0012A32A
cout << "The data in intPtr1 is " << intPtr1 << endl;
//print value stored in intPtr1 which is address of a = 0012A32A
cout << "The data in the variable pointed by intPtr1 is " << *intPtr1 << endl;
//print value stored at address in intPtr1 = 10
a++;
//increment a; a = 11
cout << "After changing a: " << endl;
cout << "The data in the variable pointed by intPtr1 is " << *intPtr1 << endl;
//print value stored at address in intPtr1 = 11
b = *intPtr1;
//b = value stored at intPtr1 => b = 11
cout << "The value in b is " << b << endl;
//print value stored in b = 11
a++;
//increment a; a = 12 only a value is changed here
cout << "After changing a: " << endl;
cout << "The data in the variable pointed by intPtr1 is " << *intPtr1 << endl;
//print value stored at address in intPtr1 = 12
cout << "The value in b is " << b << endl;
//print value stored in b = 11