πŸ“Š C Programming
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
πŸ’¬ Discuss
βœ… Correct Answer: (D) None of These

Explanation: 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].

Explanation by: Prashant
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].

πŸ’¬ Discussion


πŸ“Š Question Analytics

πŸ‘οΈ
163
Total Visits
πŸ“½οΈ
3 y ago
Published
πŸŽ–οΈ
Prashant
Publisher
πŸ“ˆ
81%
Success Rate