单机游戏大全网站开发,中国建设银行天津分行网站,网站制作学习网站,国家企业信用信息网查询系统for#xff08;#xff1b;A,B,;#xff09; 虽然学了好久C语言了#xff0c;但是自己还真是一直没有注意过for循环中间有逗号表达式的时候判定#xff0c;之前一直都是以为A和B同时满足了才会进行执行。学编译原理#xff0c;深入理解一些语言的结构的时候才发现了这一点…for···A,B,···;··· 虽然学了好久C语言了但是自己还真是一直没有注意过for循环中间有逗号表达式的时候判定之前一直都是以为A和B同时满足了才会进行执行。学编译原理深入理解一些语言的结构的时候才发现了这一点。 结论: C语言规定该表达式的值取逗号表达式中最右一个表达式的值。 这里加入两段代码进行举例: 源码一:
#includeiostream
#includebits/stdc.h
using namespace std;
int main()
{for(int i1,j5;i3,j0;i,j--){cout执行endl;}
}
运行结果一:
源码二:
#includeiostream
#includebits/stdc.h
using namespace std;
int main()
{for(int i1,j5;j0,i3;i,j--){cout执行endl;}
}
运行结果二: 这里举例的是一个很简单的执行次数进行的判定很显然看出虽然只是简单调换了逗号前后两个表达式的位置但是得出的结果却截然不同第一次由j的条件判定控制第二次由i的条件判定控制。
这里再对这个结论进行第三个甚至第n个推广也是同样的结果。在此举一个三个判别式的例子更多的大家可以自己复制源码进行尝试。 源码3:
#includeiostream
#includebits/stdc.h
using namespace std;
int main()
{for(int i1,j5;j0,i3,j2;i,j--){cout执行endl;}
}
运行结果3: 让所有人都喜欢那你得有多普通。