C Programming - Pointers

1.
Is there any difference between the following two statements?
char *p=0;
char *t=NULL;
Yes
No
Answer: Option
Explanation:
NULL is #defined as 0 in the 'stdio.h' file. Thus, both p and t are NULL pointers.

2.
Is this a correct way for NULL pointer assignment?
int i=0;
char *q=(char*)i;
Yes
No
Answer: Option
Explanation:
The correct way is char *q=0 (or) char *q=(char*)0

3.
Is the NULL pointer same as an uninitialised pointer?
Yes
No
Answer: Option
Explanation:
No answer description is available. Let's discuss.

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;
}
Yes
No
Answer: Option
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.


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;
}
Yes
No
Answer: Option
Explanation:
No answer description is available. Let's discuss.