c语言选择题(指针)

1、设 int *p , I ;以下正确合理的语句是( )。
A、*p=10;
B、i=p;
C、i=*p;
D、i=2*p+1;

你的回答: B (×) 参考答案:A

(求详解)

答案是A,首先定义p是一个指向int类型的指针,不过这个指针没有初始化,也就是没有指向。然后定义了一个int类型的变量i,这里千万不要认为i也是个指针,如果i跟p一样,要在前面也加个*号。
然后分析答案: A,这里对p指向的变量进行赋值,这里是相当于初始化了。所以正确。
B,不正确/不合理,因为p的地址不确定,所以给i赋值赋的是地址值,这个地址本身就不确定,赋值没有意义,认为是不合理的。
C,不正确,因为p指向的位置未知,这里不能对p进行解引用取值,所以这个答案可以马上排除。
D,也不正确,这里p是个地址,没有对地址进行乘法和加法的运算,所以这个答案也可以马上排除。
温馨提示:答案为网友推荐,仅供参考
相似回答