main()
{
char *p="hai
friends",*p1;
p1=p;
while(*p!='\0') ++*p++;
printf("%s %s",p,p1);
}
Answer:
ibj!gsjfoet
Explanation:
++*p++ will be parse in the given order
Ø *p that is value at the
location currently pointed by p will be taken
Ø ++*p the retrieved value
will be incremented
Ø when ; is encountered the
location will be incremented that is p++ will be executed
Hence, in the while loop initial value pointed by p
is ‘h’, which is changed to ‘i’ by executing ++*p and pointer moves to point,
‘a’ which is similarly changed to ‘b’ and so on. Similarly blank space is
converted to ‘!’. Thus, we obtain value in p becomes “ibj!gsjfoet” and since p
reaches ‘\0’ and p1 points to p thus p1 does not print anything.
Blog Author: Vijay Kumar
Go to: Java Aptitude
No comments:
Post a Comment