Sunday, 23 October 2011

Predict the output or error(s) for the following:

main()

{

char *p;


printf("%d %d ",sizeof(*p),sizeof(p));


}

Answer:

1 2

Explanation:

The sizeof() operator gives the number of bytes taken by its operand. P is a character pointer, which needs one byte for storing its value (a character). Hence sizeof(*p) gives a value of 1. Since it needs two bytes to store the address of the character pointer sizeof(p) gives 2.

No comments:

Post a Comment