设有定义:int n=0,*p=&n,**q=&p;则一下选项中,正确的赋值语句是()A,P=1B.*q=2 C.q=p D .*p=5设有定义:int n = 0 ,* p =& n ,** q =& p ;则一下选项中,正确的赋值语句是()A,P =1;B.* q =2; C.q = p; D .* p =5;
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/20 10:56:49
![设有定义:int n=0,*p=&n,**q=&p;则一下选项中,正确的赋值语句是()A,P=1B.*q=2 C.q=p D .*p=5设有定义:int n = 0 ,* p =& n ,** q =& p ;则一下选项中,正确的赋值语句是()A,P =1;B.* q =2; C.q = p; D .* p =5;](/uploads/image/z/2721759-15-9.jpg?t=%E8%AE%BE%E6%9C%89%E5%AE%9A%E4%B9%89%EF%BC%9Aint+n%3D0%2C%2Ap%3D%26n%2C%2A%2Aq%3D%26p%3B%E5%88%99%E4%B8%80%E4%B8%8B%E9%80%89%E9%A1%B9%E4%B8%AD%2C%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%B5%8B%E5%80%BC%E8%AF%AD%E5%8F%A5%E6%98%AF%EF%BC%88%EF%BC%89A%2CP%3D1B.%2Aq%3D2+C.q%3Dp+D+.%2Ap%3D5%E8%AE%BE%E6%9C%89%E5%AE%9A%E4%B9%89%EF%BC%9Aint+n+%3D+0+%2C%2A+p+%3D%26+n+%2C%2A%2A+q+%3D%26+p+%3B%E5%88%99%E4%B8%80%E4%B8%8B%E9%80%89%E9%A1%B9%E4%B8%AD%2C%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%B5%8B%E5%80%BC%E8%AF%AD%E5%8F%A5%E6%98%AF%EF%BC%88%EF%BC%89A%2CP+%3D1%3BB.%2A+q+%3D2%3B+C.q+%3D+p%3B+D+.%2A+p+%3D5%3B)
设有定义:int n=0,*p=&n,**q=&p;则一下选项中,正确的赋值语句是()A,P=1B.*q=2 C.q=p D .*p=5设有定义:int n = 0 ,* p =& n ,** q =& p ;则一下选项中,正确的赋值语句是()A,P =1;B.* q =2; C.q = p; D .* p =5;
设有定义:int n=0,*p=&n,**q=&p;则一下选项中,正确的赋值语句是()A,P=1B.*q=2 C.q=p D .*p=5
设有定义:int n = 0 ,* p =& n ,** q =& p ;则一下选项中,正确的赋值语句是()A,P =1;B.* q =2; C.q = p; D .* p =5;
设有定义:int n=0,*p=&n,**q=&p;则一下选项中,正确的赋值语句是()A,P=1B.*q=2 C.q=p D .*p=5设有定义:int n = 0 ,* p =& n ,** q =& p ;则一下选项中,正确的赋值语句是()A,P =1;B.* q =2; C.q = p; D .* p =5;
D. 解释: A:因为P是指针,只能赋指针值或者NULL(也即0,就是空指针)给它.其他的都是错误的.这里复制5给它,所以错了. B:因为q是指针的指针(二级指针),只能赋给它一级指针的地址或者NULL.这里给它的是常量,所以这里也错了. C:跟B差不多(给的是p,而p=&n,就是说给q的是n的地址,n是变量地址,不是一级指针地址),所以也错了. D:p是一级指针,保存变量的地址,*是解引用操作,对p解引用之后就等同于其所保存的变量所以(*p=5,在解引用之后可以看成是n=5,因为p=&n,而给n赋值5是正确的,n是整形,5也是整形,可以赋值).