Home / General Knowledge / Testing New :: Discussion

Discussion :: Testing New

  1. Determine Output:

    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]);

    }

  2. A.

     mmm nnn aaa

    B.

     mmmm nnnn aaaa

    C.

     Compiler Error

    D.

     None of These

    View Answer

    Workspace

    Answer : Option D

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


Be The First To Comment