Skip to content
Related Articles

Related Articles

Improve Article

C | Advanced Pointer | Question 7

  • Difficulty Level : Medium
  • Last Updated : 28 Jun, 2021

Assume that the size of int is 4.




#include <stdio.h>
void f(char**);
int main()
{
    char *argv[] = { "ab", "cd", "ef", "gh", "ij", "kl" };
    f(argv);
    return 0;
}
void f(char **p)
{
    char *t;
    t = (p += sizeof(int))[-1];
    printf("%s\n", t);
}

(A) ab
(B) cd
(C) ef
(D) gh


Answer: (D)

Explanation: The expression (p += sizeof(int))[-1] can be written as (p += 4)[-1] which can be written as (p = p+4)[-] which returns address p+3 which is address of fourth element in argv[].

Quiz of this Question

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up
Recommended Articles
Page :