A

Admin • 833K Points
Coach

Q. Determine Output:

Code:
void main()
{
char s[]="man";
int i;
for(i=0; s[i]; i++)
printf("%c%c%c%c ", s[i], *(s+i), *(i+s), i[s]);
}
  • (A) mmm nnn aaa
  • (B) mmmm nnnn aaaa
  • (C) Compiler Error
  • (D) None of These
  • Correct Answer - Option(D)
  • Views: 20
  • Filed under category C Programming
  • Hashtags:

Explanation by: Admin

Correct Output : mmmm aaaa nnnn
s[i], *(i+s), *(s+i), i[s] are all different ways of expressing the same idea. Generally array name is the base address for that array. Here s is the base address. i is the index number/displacement from the base address. So, indirecting it with * is same as s[i]. i[s] may be surprising. But in the case of C it is same as s[i].

You must be Logged in to update hint/solution

Discusssion

Login to discuss.

Be the first to start discuss.