下面的声明在C中是什么意思?
char a = (10,23,21);使用"%u“打印"a”的值时,输出为21。gcc没有给出任何错误。这个声明是什么?它的用途是什么?
发布于 2011-07-16 02:59:53
这是标量逗号运算符的一个用法。逗号运算符将计算左侧的每个表达式,并丢弃返回值,最后返回最右侧的值。
在这种情况下,它是无用的;但是,如果您将它与有副作用的表达式一起使用,那么它就会有真正的效果。
半“有用”表达式的示例(有副作用):
int a = 10;
int is_a_odd_after_increment = ++a, a % 2;第一个表达式(++a)有一个明显的副作用,它首先被计算(在a % 2之前)。第二个表达式是产生到赋值中的表达式。
发布于 2011-07-16 02:58:32
您可以看到逗号操作符正在工作。逗号操作符a,b计算a,丢弃结果,然后返回b。
因为10和23没有副作用,所以这等同于char a = 21;
https://stackoverflow.com/questions/6711894
复制相似问题