What is the output of the following Program?
main()
main()
{
int j,*p=c,*q=c;
for(j=0;j<5;j++)
{
printf("%d",*c);
++q;
++q;
}
for(j=0;j<5;j++)
{
printf(" %d ",*p); ++p;
}
}
Answer:
2 2 2 2 2 2 3 4 6 5
Explanation:
Initially pointer c is assigned to both p and q.
In the first loop, since only q is incremented and not c , the value 2 will be printed 5 times.
In the first loop, since only q is incremented and not c , the value 2 will be printed 5 times.
In second loop p itself is incremented.
So the values 2 3 4 6 5 will be printed.
we will get an error if u execute this program because instead of "%d" he placed "d"
ReplyDeleteLook at it clearly its "%d" itself.Not "d".....!!!
ReplyDeletefirst for loop prints the initial address of c array for five times
ReplyDeleten
second for loop prints 2 3 4 6 5
No akash thats not the correct answer but good try...
ReplyDeleteCan do better try again....!!