问题
单项选择题
若C程序的表达式中引用了未赋初值的变量,则()。
A.编译时一定会报告错误信息,该程序不能运行
B.可以通过编译并运行,但运行时一定会报告异常
C.可以通过编译,但链接时一定会报告错误而不能运行
D.可以通过编译并运行,但运行结果不一定是期望的结果
答案
参考答案:C
解析:全局变量和静态局部变量在定义时如果没有初始化,编译时会自动初始化为0;而普通的局部变量,如果没有初始化,则其值是一个随机数。在C程序表达式中,只要引用的变量定义了,就可以通过编译并运行,但运行结果不一定是期望的结果。