C++面试题集锦:赋值语句相关

马谦马谦马谦 2018年1月13日22:47:20 发表评论
文章最后编辑于:2018-1-14 22:27:02

一、未定义变量的初始值和变量作用域

下列C/C++代码的输出结果是什么:

c语言中,局部变量的优先级会高于全局变量。这里int i = i;中的i和全局变量中的i是无关的。

对于全局变量和静态变量,没有初始化系统会默认置零。而局部变量和自动变量没有初始化初始值是一个随机的未定义的值。所以这里的输出也是一个无法预见的值。

经过测试,在较高标准的编译环境中,不管是全局变量还是局部变量,都会默认初始化为0。

本例在【VC6】环境下i是随机值,在【gcc version 4.4.7 20120313 (Red Hat 4.4.7-18】环境下i是0。

本文共执行43次查询,耗时0.280秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: