C语言中的"表达"是什么意思?

Har*_*man 3 c

我已经参与了C编程很长一段时间了.几天前,我偶然发现了错误编写的代码,这让我想到了以下问题.

以下C代码将打印出来的内容.

if (0,2)  
    printf("red");
Run Code Online (Sandbox Code Playgroud)

pb2*_*b2q 9

代码的输出将是:

red
Run Code Online (Sandbox Code Playgroud)

if语句的条件使用逗号运算符,该运算符运算符计算第二个操作数的结果,在这种情况下:2.由于C中的非零类似于true,因此表达式为,并printf执行.

使用逗号运算符,计算第一个操作数并丢弃结果,然后计算第二个操作数,表达式的结果和类型是第二个操作数的计算结果和类型.在维基百科上阅读有关逗号运算符的更多信息.


das*_*ght 5

会打印red,不像

if (2,0)
    printf("red")
Run Code Online (Sandbox Code Playgroud)

什么都不打印.

这就是C中的逗号运算符的工作方式 - 它逐个计算其操作数,并将最后一个的结果作为整体结果生成.