永发信息网

c程序问题9----关于for循环赋初值--2

答案:2  悬赏:0  手机版
解决时间 2021-03-29 20:18
c程序问题9----关于for循环赋初值--2
最佳答案
这是我的测试程序:
#include
int main()
{
int i;
int j;
for(i=0,j=0;i<10,j<11;i++,j++)
{
printf("%d %d\n",i,j);
}
getchar();
return 0;
}
编译时会提示:warning: left-hand operand of comma expression has no effect,也就是for的第二个表达式逗号前面的没有什么作用,
其判断的时候,只会判断j<11是否成立。
这个程序的输出结果为:
0-10。
若将j<11,修改为j<8,则输出 0-7. 也就是说i<10没有什么约束力。

2:之所以能够进行计算,原因就是上面的原因,第一个for进行判断的时候,只判断i<10是否成立,成立就进行循环。i=1<10成立,所以进行循环了。第一个for至于j,k参加的计算第一次的结果不可预料,因为没有赋初值。变量使用之前最后初始化,这是一个好的习惯,否则后面可能想使用的时候,你完了赋值,造成不可预料的结果,而且检查错误时也不易发现。

3:隐患:一是JK没有初始化。二是这就是一个测试程序,像10这种循环限制结束条件都是自己知道的,一般实际编程中,不会出现这样的具体数字。因为修改麻烦。追问答案非常详细, 想问一下你是用什么做编译的, 因为你的程序我在vc6上面并没有warning出现。追答我是用gcc编译的。
全部回答
1、不赋初值不代表没有值;未赋初值情况下,变量J K也有值,只是这个值不确定而已。
2、表达式2可以用逗号,代表多个条件,判断顺序是从左到右依次判断
3、隐患就是JK未赋初值,最外层循环判断过程可能出现意想不到的情况。比如,如果J、K随机分配到的内存中的数据是10000,则,最外层循环直接失效
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单人旁加个岂是什么字?
来送大家个对联
辛弃疾的词句,“山前灯火欲黄昏,山头来去云
秋刀鱼怎么煎
vivo有一款香槟色的手机是什么
九天绿香苓参植物饮液价格
百度知道群这是怎么回事?
这道题的解题过程是?H股份有限公司股东王
德阳地区车二次抵押哪里好点
勇者斗恶龙龙泥是什么
拍片检查肠子积了很多大便会引起什么专
哪个知道美元总共发行量有多少?
45号刚淬火水里放食用碱有什么作用
把负一二负三四负五负六七负八负九分别填在空
最近浑身乏力,而且特别容易出汗是怎么回
推荐资讯
化学就在我们的身边,物质的性质决定了它的用
11版caxa可以打开13版cad图吗
台北世界贸易中心的介绍
有网线,没有电脑,只有猫和路由器能上网吗
8分之7-x=6分之一解方程
我想学个中医推拿按摩师,不知西安有没有好的
将,2.4.6.8.10.12.14将这七位数
沈阳杏林好不好 做鼻子怎么样 需要多少钱
11年7月本田飞度1:3排量自动档经济省油,全车
谁有浮生物语456啊?要百度网盘的,谢谢!
梦幻慈航
驾驶证扣分是不是要预约学习?什么时候可去学
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?