若有一些定义和语句
#include <stdio.h>
int a=4, b=3, *p,*q,*w;
p=&a; q=&b; w=q; q=NULL;
则以下选项中错误的语句是
A.*q=0;
B.w=p;
C.*p=a;
D.*p=*w;
参考答案:A
解析: 本题考核的知识点是指针变量的使用与空指针(NULL)基本概念.本题中定义了3个指向整型的指针变量p、q、w,并让p指向a,让q指向b,通过将q的值赋给w,使w也指向b,最后将NULL赋值给q。由整形变量指针的定义可知,可以给整型指针指向的变量赋一个常数值(表达式),故选项C和选项D是正确的;可以给指针变量赋一个同种类型的指针变量(或地址值),故选项B也是正确的;选项A错误,因为q不指向任何变量,给一个空指针指向的单元赋值是错误的。所以,A选项为所选。