main()
{
char *p="hai friends",*p1;
p1=p;
while(*p!='\0') ++*p++;
printf("%s %s",p,p1);
}
Answers were Sorted based on User's Feedback
Answer / susie
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 p1doesnot print anything.
Is This Answer Correct ? | 6 Yes | 1 No |
Answer / sourav punoriyar
checked in gcc.
it gives segmentation fault(core dump),in gcc...
because the char *p="hai friends",is a pointer pointing to
this string in the code section,(this string is present in
code section.)
now,
++*p=this is ++(*p)=h+1=i,and stores it in p,but data in
code section cannot be modified so core dump.
if
*p++,first dereference and then increases the pointer....so
it will point to a now.
Is This Answer Correct ? | 2 Yes | 0 No |
Answer / sourav punoriyar
but in turbo c it can be the given ans ,as given by susie,
as there it gets stored in datasection which is modifiable
Is This Answer Correct ? | 1 Yes | 0 No |
void main () { int x = 10; printf ("x = %d, y = %d", x,--x++); } a. 10, 10 b. 10, 9 c. 10, 11 d. none of the above
Predict the Output: int main() { int *p=(int *)2000; scanf("%d",2000); printf("%d",*p); return 0; } if input is 20 ,what will be print
posted by surbhi just now main() { float a = 5.375; char *p; int i; p=(char*)&a; for(i=0;i<=3;i++) printf("%02x",(unsigned char) p[i]); } how is the output of this program is :: 0000ac40 please let me know y this output has come
Write a function to find the depth of a binary tree.
13 Answers Adobe, Amazon, EFI, Imagination Technologies,
main() { int i=300; char *ptr = &i; *++ptr=2; printf("%d",i); }
main() { unsigned int i=10; while(i-->=0) printf("%u ",i); }
Write a program to receive an integer and find its octal equivalent?
How can i find first 5 natural Numbers without using any loop in c language????????
write a program in c to merge two array
main() { show(); } void show() { printf("I'm the greatest"); }
main() { int i=3; switch(i) { default:printf("zero"); case 1: printf("one"); break; case 2:printf("two"); break; case 3: printf("three"); break; } }
void main() { static int i=5; if(--i){ main(); printf("%d ",i); } }