问题 单项选择题

请选出正确的程序段

A.int*p;
scanf("%d",p);

B.int*s,k;
*s=100;

C.int *s,k;
char*p,c;
s=&k;
p=&c;
*p='a';

D.int *s,k;
char *p,e;
s=&k;
p=&c;
s=p;
*s=1;

答案

参考答案:C

解析: 本题的选项A)和B)犯了一个同样的错误,即指针变量p定义后并没有指向具体的变量。也就是说,p中没有确定的地址值,它的值是不可预见的,所指向的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

填空题
单项选择题 A1型题