C/C++ 关于 for循环 的第二个表达式右侧非常量的时候
废话不多说,直接看代码:
#include<stdio.h> int main(){ int i=5; for(int z=i,zmax=i+10;z<zmax;z++){ printf("i=%d z=%d\n",i,z);i++; } /* 无限循环了.... for(int z=i;z<i+10;z++){ printf("i=%d z=%d\n",i,z);i++; } for(;i<i+10;i++){ printf("i=%d\n",i); } */ return 0; }
两个无限循环的for,都是 第二个表达式 XX < ZZ 右侧为非常量所引起。
我本以为 编译器会优化,不过被一般的思维羁绊了,第二个表达式 也可能跟 前面的变量没有任何关系,所以不可能优化的么~
既然是表达式,当时是动态的,在for循环内部更新了变量,这个表达式自然会发生变化。
------------------------------------------------------------------------------------------------
一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。