问题 单项选择题

以下程序段完全正确的是( )。

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)错在没有对指针进行初始化,无效指针,并且在scanf("%d",&p)中无需再进行取地址操作。选项B)没有对指针进行初始化,无效指针。选项D),语句*p=&k;的左端*p是指针所指内存空间的值,&k是地址,应为p=&k。

选择题
多项选择题