中易网

为什么下面C语言代码是死循环呀。看了半天没发现问题

答案:5  悬赏:80  
解决时间 2021-02-02 22:15
调式的时候,因为有printf 进入不了调试界面,去掉for里面的几个打印,程序正常



最佳答案
表达式1,表达式2

逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,表达式“3+5,6+8”的值为14。也就是说for循环能否自动结束取决于这个表达式printf(“Second=%d”,i);

而printf函数的返回值是打印出的字符个数,而你的for循环内的判断表达式printf不可能返回0,而是返回8,“Second=%d”一共八个字符,所以程序死循环
全部回答
确切的说是去除i<10后面的东西和i++后面的东西即可 原因:查询for循环里条件表达式,逗号表达式的用法即可明白
for里面第二个表达式i<10,printf(..);中,由于逗号表达式的缘故,pirntf成了判断表达式,也就是说结束条件要printf为假才结束,printf的返回值时实际输出字符的个数,只要有东西输出,printf永远为真,for就死循环了。 这里可以改成printf(..),i<10 反过来写
靠, 看错了
这对花括号可以省略掉,if语句不加花括号的话则认为他下面第一条语句属于if语句的主体部分,所以这个花括号可以省略,不知道这是楼主想问的不。。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问韩后有机茶蕊系列含有激素吗?
食鼎记麻辣香锅NO.009在什么地方啊,我要过去
日常生活中,你是怎样合理安排时间的?有什么
美的吊扇调速器使用的时候怎么会冒火花,要怎
武汉市友谊工艺饰品批发中心地址有知道的么?
独品杺烨手机在什么地方啊,我要过去处理事情
如何得到一个指针数组里的每一个字符串元素的
台湾时期流行音乐产生的背景六十至七十年代
盼盼酸辣粉在什么地方啊,我要过去处理事情
丽水学院有专科吗,商务英语方面是不是有限制
给达姓的孩子取什么名子好呀?
三林时尚宾馆地址在什么地方,想过去办事
下载QQ灰太狼气泡
鲁家渡怎么去啊,有知道地址的么
刷牙时加点小苏打
推荐资讯
求作文 我眼中的大堰河 高一新生 谢谢
我今年40岁了,想去学化妆,美甲还可以吗
关于鹿鼎记免费光盘~
初一语文《课时训练》论语十则20题答案
支付宝2016年4月15日更新后怎么用不了
心灵的慰藉和寄托----宗教建筑 幻灯片
湖南省2016中小教师开编考试什么时候
宝骏510带T吗?
为什么一万年太久,只争朝夕?
凯越..8发动机为何有两个水温传感器各有什么
我本人是山东人,我对象是邓州的。想去邓州做
电源开关有哪几种?想买开关,但是不知道开关
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?