设有定义: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;
人气:224 ℃ 时间:2019-09-27 15:37:30
解答
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也是整形,可以赋值).
推荐
- 设有定义:int n=0,*p=&n,**q=&p,则下列赋值语句哪个是正确的?A.p=1;B.*q=2;C.q=p;D.*p=5;
- 7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( ).A) p=1; B) *q=2; C) q=p; D) *p
- 9-6已有定义:int i,a[10],*p;,则合法的赋值语句是 A.p=100; B.p=a[5]; C.p=a[2]+2; D.p=a+2;
- 设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )A*p=*q;
- 若有以下定义,则正确的赋值语句是( ) int a,b; float x; A.a=1,b=2 B.b++; C.a=b=5 D.b=int (x)
- Why some words in English are emphasized?
- 已知双曲线C的渐近线方程为y=±3x,右焦点F(c,0)到渐近线的距离为3. (1)求双曲线C的方程; (2)过F作斜率为k的直线l交双曲线于A、B两点,线段AB的中垂线交x轴于D,求证:|AB
猜你喜欢