首页 新闻 会员 周边

C语言试题,不理解,请高手点拨

0
悬赏园豆:5 [已解决问题] 解决于 2018-04-10 14:52

下面这道题答案是什么,并给出思考的理由.我问这个问题的原因是,书上给的答案与我的不一致.以下选项,我在C代码中均能编译执行通过,那么,从哪个角度思考来寻找错误语句呢?

若有以下定义和语句
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;

青松之林的主页 青松之林 | 初学一级 | 园豆:183
提问于:2017-11-05 09:53
< >
分享
最佳答案
0

选A。

q为NULL,没有明确的指向,所以对其不能进行运算,也就不能用*q了

收获园豆:5
Arthurian | 小虾三级 |园豆:1123 | 2017-11-05 10:24
int a,*p,*q;
p=&a;    //正确
*q=a;    //错误,因为q还没有指向,所以不能进行运算

很多人初学指针都会不清楚这个

Arthurian | 园豆:1123 (小虾三级) | 2017-11-05 10:28
其他回答(2)
-1

楼上正解,选A

指针在使用前必须对它进行分配空间,否则不能赋值

LeeAaron | 园豆:206 (菜鸟二级) | 2017-11-06 12:03
0

 指针变量,是一个变量,变量定义时需要赋值,而指针变量存储的是另外一个变量的地址,如果为0或者null则指针无效(至于为什么这样,似乎是C标准规定)。

前端人生 | 园豆:202 (菜鸟二级) | 2017-11-14 23:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册