Yes / No Questions

Question 1 :

Is there any difference between the following two statements?
char *p=0;
char *t=NULL;


A). Yes
B). No
Answer : Option B

Explanation :

NULL is #defined as 0 in the 'stdio.h' file. Thus, both p and t are NULL pointers.


Question 2 :

Is this a correct way for NULL pointer assignment?
int i=0;
char *q=(char*)i;


A). Yes
B). No
Answer : Option B

Explanation :

The correct way is char *q=0 (or) char *q=(char*)0


Question 3 :

Is the NULL pointer same as an uninitialised pointer?


A). Yes
B). No
Answer : Option B

Question 4 :

Will the program compile in Turbo C?

#include < stdio.h >
int main()
{
    int a=10, *j;
    void *k;
    j=k=&a;
    j++;
    k++;
    printf("%u %u\n", j, k);
    return 0;
}


A). Yes
B). No
Answer : Option B

Explanation :

Error in statement k++. We cannot perform arithmetic on void pointers.

The following error will be displayed while compiling above program in TurboC.

Compiling PROGRAM.C:
Error PROGRAM.C 8: Size of the type is unknown or zero.


Question 5 :

Will the following program give any warning on compilation in TurboC (under DOS)?

#include < stdio.h >
int main()
{
    int *p1, i=25;
    void *p2;
    p1=&i;
    p2=&i;
    p1=p2;
    p2=p1;
    return 0;
}


A). Yes
B). No
Answer : Option B