问题
单项选择题
有如下程序: #include<iostream> using namespace std; int main() {int *p;*p=9;cout<<"The value at p:"<<*p;return 0; } 编译运行程序将出现的情况是
A.编译时出现语法错误,不能生成可执行文件
B.运行时一定输出:The value at p:9
C.运行时一定输出:The value at p:*9
D.运行时有可能出错
答案
参考答案:D
解析: 本题考查的是指针的运用。在使用任何指针变量之前必须先给它赋一个所指合法具体对象的地址值。本题中,在给*p赋值前,指针变量p并没有指向一个具体对象。此时可以通过编译,但运行时由于p中为随机值,该赋值可能会破坏内存中某个重要的地址空间中的内容,导致程序运行出错。故应该选择D。