首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C语言中的变量定义

问C语言中的变量定义
EN

Stack Overflow用户
提问于 2011-07-16 02:57:14
回答 2查看 345关注 0票数 1

下面的声明在C中是什么意思?

代码语言:javascript
复制
char a = (10,23,21);

使用"%u“打印"a”的值时,输出为21。gcc没有给出任何错误。这个声明是什么?它的用途是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-16 02:59:53

这是标量逗号运算符的一个用法。逗号运算符将计算左侧的每个表达式,并丢弃返回值,最后返回最右侧的值。

在这种情况下,它是无用的;但是,如果您将它与有副作用的表达式一起使用,那么它就会有真正的效果。

半“有用”表达式的示例(有副作用):

代码语言:javascript
复制
int a = 10;
int is_a_odd_after_increment = ++a, a % 2;

第一个表达式(++a)有一个明显的副作用,它首先被计算(在a % 2之前)。第二个表达式是产生到赋值中的表达式。

票数 3
EN

Stack Overflow用户

发布于 2011-07-16 02:58:32

您可以看到逗号操作符正在工作。逗号操作符a,b计算a,丢弃结果,然后返回b。

因为10和23没有副作用,所以这等同于char a = 21;

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6711894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档