吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1540|回复: 23
收起左侧

[求助] C语言for语句

[复制链接]
程晨 发表于 2020-11-30 21:06
本帖最后由 程晨 于 2020-12-1 13:50 编辑

for(i=0,j=0;i<5,j<6;i++,j++)
想问一下,为什么三个表达式里面都有逗号,但是第一个和第三个表达式里面,两个表达式都会执行。但是第二个表达式就只会执行右边的?大佬可以解释一下吗?谢谢!!!


试了一下printf          for(i=0,j=0;printf("i"),printf("j");i++,j++);   

知道第二个表达式的两个都会执行,但是为什么 (i<7,j<6)   和  (i<5,j<6)  好像都只执行6次   这是为什么啊   大佬???

1.PNG
2.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

古月不傲 发表于 2020-11-30 21:27
不为什么,就是这么设计的,转成汇编语言自己看看就知道了。
摸鱼怪 发表于 2020-11-30 21:29
hqu8808 发表于 2020-11-30 21:38
古月不傲 发表于 2020-11-30 21:40
这时候汇编语言就派上用场了,c语言转成汇编很容易看懂的,当你不确定这句语句到底内部在干嘛的时候。
6767 发表于 2020-11-30 21:46
本帖最后由 6767 于 2020-11-30 21:49 编辑

逗号语句的最终值为右侧最后一个表达式值
写点代码你就懂了
[C++] 纯文本查看 复制代码
#include <stdio.h>
int main()
{
   int v=0;
        for(v=1;printf("v=%d;",v),printf("v+1=%d;\r\n",v+1), v<7;v++){
        }
   return 0;
}

懒得编译可以找个在线的:https://www.runoob.com/try/runco ... lloworld&type=c

C这里的macro,各种表达式玩法很多的,不必深究。
写得再好,不如我大python
bookaccount 发表于 2020-11-30 21:47
这种代码在真实项目里会出现吗?
silverkey 发表于 2020-11-30 21:52
其实第二参也两个条件都满足了才停呢 你可以下断就发现是这样的
曦阳520 发表于 2020-11-30 22:00
都执行了呀,你换成printf语句试试,都会执行
Xeno 发表于 2020-11-30 22:23
中间是逗号运算符吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 08:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表