C Programming - Pointers - Discussion
Discussion Forum : Pointers - Find Output of Program (Q.No. 10)
10.
What will be the output of the program ?
#include<stdio.h>
int main()
{
void *vp;
char ch=74, *cp="JACK";
int j=65;
vp=&ch;
printf("%c", *(char*)vp);
vp=&j;
printf("%c", *(int*)vp);
vp=cp;
printf("%s", (char*)vp+2);
return 0;
}
Discussion:
84 comments Page 2 of 9.
Shubham said:
8 years ago
@Sriram.
Because there is %c format specifier in the printf function.
Because there is %c format specifier in the printf function.
Sivaraj MCA said:
8 years ago
The void pointer can't accept any arithmetic operation then how it is possible?
Sriram said:
9 years ago
In the 9th line it is integer type casting how 'A' is displayed.
Sai kumar said:
9 years ago
Thank you @Nilesh.
Akash said:
9 years ago
@Nilesh.
Thank you very mush. Your explanation is clear.
Thank you very mush. Your explanation is clear.
Debajyoti MALLICK said:
9 years ago
Thanks @Nilesh and all.
Nice explanation.
Nice explanation.
Shreya said:
9 years ago
In step 2.
printf("%c", *(int*)vp);
Why doesn't it print 65 in place of 'A'?
(since it is typecast to int type and j also holds an integer).
printf("%c", *(int*)vp);
Why doesn't it print 65 in place of 'A'?
(since it is typecast to int type and j also holds an integer).
Azagumozhi.M said:
9 years ago
Thank you, @Nilesh ji. Nice explanation.
Ask said:
9 years ago
Thanks @Nilesh. Your concept is clear to understnd.
Deepak said:
9 years ago
Thank you all, it is very useful.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers