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

Discussion

What is the output of this C code?

void main()
{
int x = 0;
int *ptr = &x;
printf("%d\n", *ptr);
}

 

  • A.Address of x
  • B.Junk value
  • C.Run time error
  • D.0

Answer: D

Correct answer: 0

ptr holds the address of x, so *ptr retrieves what is stored there, which is 0. There is nothing indeterminate about it - x was explicitly initialised, and the pointer was set from its address, so the dereference is entirely defined. Printing the address rather than the value would require %p and the pointer itself.

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

Post your comment

Please log in or register to post a comment.