作业帮 > 综合 > 作业

两道关于null的c语言题目:1 设有定义:int x=0,*p;立刻执行以下语句,正确的是:a.p=x; b.*p=x

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 13:00:22
两道关于null的c语言题目:1 设有定义:int x=0,*p;立刻执行以下语句,正确的是:a.p=x; b.*p=x;
c.p=null; d.*p=null
2
设变量p是指针变量,语句p=null;是给指针变量赋null值,它等价于
a.p=" "; b.p=‘0’;c.p=0; d.p='';
主要是第一题的c选项不太明白
第一题
a、p是一个地址,你可以说p=&x,但不能说a=x,a不对
b、*p是指向一个变量地址的指针,而x是int型,b不对
c、c是对的,这是指针的初始化.
d、int *p;*p=null;该句代码的意思是p指向的内存赋值为NULL,这不是合法的内存,d不对.
第二题
在c语言中null与0相对应,因此,p=null,p=0,p='\0'都是正确的
而字符'0’或者空格符的ASCII都不是0
再问: 第一题答案是b,开始的时候对指针类型有定义啊,int *p
再答: 好吧我2B了,在给被指向的数据存放单元赋值之前要初始化 int *p; int a; p = &a; *p=x 所以b是错的,答案真的是c
再问: 你的意思是这题答案给错了,应该选c?
再答: 是的
再问: 但是为什么我用vc6.0实际运行这个程序的时候却是b选项没有问题啊
再答: 你把你写的程序给我看看
再问: 咱两qq什么的说吧 1835298388