7. 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。 A) p=1; B) *q=2; C) q=p; D) *p

2024-12-03 17:28:10
推荐回答(2个)
回答1:

n是整数,p是整数指针,q是双重指针。
A:p=1 属于将地址1赋给p,非法。
B:*q=2 这里*q相当于一个整数指针,问题同上,非法。
C:q=p 相当于把p的地址赋给q,不能说错,但是不同维数的指针互相赋值,容易出错。
以上三种都是编译没有问题。
D比较符合规范而已。

回答2:

这题出的是有点问题,按他这意思,q应该是一个指向指针的指针,所以正确答案应该是D,
但是不能说其他的赋值是错误的,只是对这个题来说没什么意义而已。