Machine-translated by Google. Questions are authored in English.
Top

Discussion

What is the output of this C code?

void main()
{
int k = 5;
int *p = &k;
int **m = &p;
**m = 6;
printf("%d\n", k);
}

 

  • A.5
  • B.Compile time error
  • C.6
  • D.Junk

Answer: C

Correct answer: 6

**m reaches all the way through to k: m points at p, and p points at k. So the assignment writes 6 into k itself, and printing k confirms it. This is how a double pointer lets code several levels away modify the original object.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.