试题与答案

以下程序有错,错误原因是( )。 main() int *p,i;char

题型:单项选择题

题目:

以下程序有错,错误原因是( )。
main()
int *p,i;
char *q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;

A) p和q的类型不一致,不能执行*p=*q;语句
B) *p中存放的是地址值,因此不能执行*p=40;语句
C) q没有指向具体的存储单元,所以*q没有实际意义
D) q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行语句*p=*q;没有意义,可能会影响后面语句的执行结果

答案:

参考答案:D

解析: 在该程序中,首先声明整型指针变量p和整型变量i,字符型指针变量q和字符型变量ch,将i的地址赋给指针变量p,将ch的地址赋给指针变量q,然后将40赋给*p。此时,虽然q已经指向了一个具体的存储单元,但ch的值不确定,即*q没有确定的值,所以不能执行 *p=*q;语句。

试题推荐
微信公众账号搜索答案