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

admin2013-02-23  23

问题 以下程序有错,错误原因是
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的值不确定,即*p没有确定的值,所以不能执行*p=*q语句。
转载请注明原文地址:https://kaotiyun.com/show/kUJp777K
0

最新回复(0)