int *p;
int a = 20;
*p = a;
printf("%d",*p);运行结果是什么?A.10
B.a 的 地址值
C.编译错误
D.运行异常
分析:
一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。
二、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。
三、指针操作超越了变量的作用范围。比如不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。
此题就是指针还没初始化,因此为野指针,执行 *p = a; 这步时,运行会异常。