c语言这几道题 关于指针的 望大神解答

2025-05-22 11:15:28
推荐回答(4个)
回答1:

1、D选项,*x本身就错误,因为x是int类型,没法使用*操作符。
2、A之所以错是因为代码中有一句q=NULL,也就是说q是一个空指针了,你再向里面写东西就错了,而且你在vc6.0中可以试一下,马上会出现一条0xc000 0005的写异常。。
3、是的,你不管给它赋值多少都是4的。。就好比一个4平方米的房子,你装多少东西,装什么东西,它都是4平方米。

有问题继续追问。。

回答2:

1,x是整形变量, *操作符要后跟指针,用来表示这个指针所指向的变量,因为x不是指针,所以*x从语法上是错误的。
2,题干中的那一串是有用的,迷惑你,光看选项好像都正确。但要注意题目中最后q=NULL,让指针q指向空地址了,向空地址装数据是肯定装不了的。所以A在这种情况下就是错误的了
3,你说的对,sizeof()就是要取变量A在内存中占用空间的大小,与这个数本身数值大小无关,好比一个班级里的同学,不论高矮胖瘦,都只占一个座位。)

回答3:

第一题选A

D选项错在两个地方,一是指针pb没初始化不能引用(引用指针之前必须指明该指针指向何处),二是x本身是int型,不能用*对x进行操作

第二题选A
因为已经声明了q是一个空指针,那么就不能对空指针进行赋值,因为计算机不知道该把值放在哪里

第三题 对的,因为sizeof只是对int求其占的空间大小,与变量的值没关系

回答4:

1、x在题目中已经定义为int x了,*x是没有意义的。
2、注意题干中q已经置为NULL了,没法把常量0放进去了,所以错误。
3、对的。sizeof(A)的结果只是与A的类型有关。