I need help with determining the output of these C++ statements. Please explain
ID: 3881427 • Letter: I
Question
I need help with determining the output of these C++ statements.
Please explain your solution
float a = 9.8, b = 7.2, *ptr1, *ptr2;
short c = 13, *ptr3;
ptr1 = &a;
ptr2 = &b;
ptr3 = &c;
If the following statements, along with the five statements given above, are executed as part of complete programs, what will be printed? In any of the problems, if you think an error message will be produced, explain why.
(a) int j;
j = ptr3 - ptr1;
cout << j;
(b) short j;
j = ptr2 - ptr1;
cout << j;
(c) ptr2 = 3*ptr1;
cout << ptr2;
(d) cout << ptr2 - 1;
(e) cout << *(ptr2 - 1);
(f) cout << (int)ptr3 - (int)ptr1;
Explanation / Answer
a. error will be produced because ptr3 is of type short int and ptr1 is of type pointer float so subtraction cannot be performed between them.
b. output is 1 it displays the difference between the adreesses the consecutive floats are assigned one after another.
c. error as 3 is of type int and ptr1 is a float pointer multiplication cannot be performed.
d. output is random it varies according to address which is alloted to variable
e. the output is 9.8 as the address of ptr1 is ptr2-1 and * referes to the value at that address
f. error as pointers of short int and float cannot be converted to int
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.