问题
单项选择题
以下程序段完全正确的是
A.int *P; scanf("%d", &p);
B.int *P; scanf("%d", p);
C.int k, *P=&k; scanf("%d", p);
D.int k, *P; *P=&k; scanf("%d", p);
答案
参考答案:C
解析: 选项A、B中,指针p是一个变量,但是没有赋值,即p没有指向一个具体的存储空间,所以不能在scanf语句中使用指针p。选项D中,"*p=&k;"表示错误,"&k"是变量k的地址,只能对指针p赋值,而不是对*p赋值。