4. 有以下说明语句,则正确的赋值语句是( ). int a[5][5]; int *p, **q;

(A)p=a; (B)p=*a; (C)q=a; (D)q=*a;

n是整数,p是整数指针,q是双重指针。A:p=1属于将地址1赋给p,非法。B:*q=2这里*q相当于一个整数指针,问题同上,非法。C:q=p相当于把p的地址赋给q,不能说错,但是不同维数的指针互相赋值,容易出错。以上三种都是编译没有问题。D比较符合规范而已。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-05
A、指针类型错误,a是数组指针,p是元素指针
B、正确
C、错误。类型错误,q是二重指针
D、错误。类型错误本回答被网友采纳
第2个回答  2018-04-04
(B)正确,选(B)。