我已经参与了C编程很长一段时间了.几天前,我偶然发现了错误编写的代码,这让我想到了以下问题.
以下C代码将打印出来的内容.
if (0,2)
printf("red");
Run Code Online (Sandbox Code Playgroud)
代码的输出将是:
red
Run Code Online (Sandbox Code Playgroud)
该if语句的条件使用逗号运算符,该运算符运算符计算第二个操作数的结果,在这种情况下:2.由于C中的非零类似于true,因此表达式为真,并printf执行.
使用逗号运算符,计算第一个操作数并丢弃结果,然后计算第二个操作数,表达式的结果和类型是第二个操作数的计算结果和类型.在维基百科上阅读有关逗号运算符的更多信息.
它会打印red,不像
if (2,0)
printf("red")
Run Code Online (Sandbox Code Playgroud)
什么都不打印.
这就是C中的逗号运算符的工作方式 - 它逐个计算其操作数,并将最后一个的结果作为整体结果生成.