【问题标题】:what this assignment operation is called in c/c++?这个赋值操作在 c/c++ 中叫什么?
【发布时间】:2014-03-05 01:13:43
【问题描述】:

我知道 c/c++ 的基础知识 最近,我经历了一个看起来很奇怪的任务

int a=1,b=2,c=5;  
int x = (a,b,c);

奇怪的是,x 的值为 5。
老实说,如果我知道这个赋值操作叫什么,我会搜索谷歌的。
有什么帮助吗?

【问题讨论】:

    标签: c variable-assignment


    【解决方案1】:

    这个任务没有被特别地称为任何东西,不是这样的。这是comma operator的用法。

    它只是按从左到右的顺序计算所有参数,结果是最后一个(最右边)表达式的值。

    括号在这里很重要,没有它们就变成了简单的初始化,这个:

    int x = a, b,c;
    

    做了一些完全不同的事情:它将x声明并初始化为a的值,然后在bc上产生重新声明错误;上述行无法编译。

    请注意,这与 for 循环的开头子句中的逗号不同。

    【讨论】:

    • "请注意,这与 for 循环的开头子句中的逗号不同。"以什么方式?
    • @EricPostpischil 是的,这很糟糕。我责怪周五下午。我现在重写了,谢谢。也谢谢 sharth!
    【解决方案2】:

    , 在第二个语句中称为逗号运算符。它从左到右计算,最后一个操作数(子表达式)的值将成为整个表达式的值。万一

    int x = (a,b,c);  
    

    首先评估a,丢弃其值,然后评估b,丢弃其值,最后评估c,并将其值分配给x

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 2016-03-06
      • 2017-07-18
      • 1970-01-01
      • 2012-08-20
      • 2017-02-24
      相关资源
      最近更新 更多