C:变量初值问题

没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。
如果加了static不给初值,变量的初值是默认的 0。

其实不能说不赋初值就不行,对于局部变量,不赋初值的话,其实他里面存的是一个随机的值,谁也不知道他是多少,因此如果没赋初值的情况下就使用它,程序是完全不可控的,如你的图1,直接在while里去判断b了,因此这个while判断是不可控的。

 

个人理解:因为在程序运行中,所运行设备的内存中的值是任意的,定义变量后,所定义的地址处更改为初值,如果没有赋予初值,那么此处的存储空间没有刷新,为随机值(也可能前一个遗留的)

posted @ 2015-11-18 20:02  Eldric  阅读(318)  评论(0编辑  收藏  举报