c语言不初始化就判断

if(i!=0);i不初始化,这个判断会成立吗

不同的编译器处理方式不一样的。
比较老的编译器,会自动把变量初始化为0
有的编译器会给一个随机的值,这时候if(i!=0)就是成立的(比如,vscode/vs2008及以前的版本,这个if都是成立的)
对应检查比较严格的编译器(比如vs2017以后的版本),使用未初始化的变量编译都不通过的。


最后,不建议使用未初始化的变量,容易导致意想不到的结果。

成立,如果在main()函数外,会自动初始化0,如果是main()函数内,也会随机初始化,大概率是0