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

Discussion

What is the output of this C code?

#include <stdio.h>
    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, and *ptr reads the object there, which is 0 - the value x was initialised with.

The %d conversion prints it as an integer. Printing the pointer itself would need %p and would show an address, which is the first distractor. There is nothing uninitialised here, so no junk value arises, and dereferencing a pointer to a live object is entirely well defined.

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

Post your comment

Please log in or register to post a comment.