以下是引用embed_xuel在2011-9-19 20:36:54的发言:
还有很多同学不明白,赋值表达式的值不表达赋值成功与否,而是赋值后,等号左边变量的值,尝试一下下面这个程序 void main(){int i;if (i=0) printf("i=0");if (i=1) printf("i=1");}这个程序会输出 i=1,也就是说执行了第二个if语句的执行。
if判断语句,比如if (i=0)这种编译是不会报错的,一旦出问题了不好定位,所以很多公司的编程规范里有一条,如果是if判断,后面的表达里常量要被放在==的左边,如if(1==i),因为如果写错了写成if(1=i)编译会报错
这位说的是对的,好像这个程序中的size_t数据定义结构很重要,但楼主没有给大伙说出来。
[
本帖最后由 yucwei 于 2011-9-20 10:33 编辑 ]