相关疑难解决方法(0)

逗号运算符如何工作

逗号运算符如何在C++中工作?

例如,如果我这样做:

a = b, c;  
Run Code Online (Sandbox Code Playgroud)

最终是否等于b或c?

(是的,我知道这很容易测试 - 只是在这里记录,以便有人快速找到答案.)

更新: 此问题在使用逗号运算符时暴露了细微差别.只是记录下来:

a = b, c;    // a is set to the value of b!

a = (b, c);  // a is set to the value of c!
Run Code Online (Sandbox Code Playgroud)

这个问题实际上是受到代码中的拼写错误的启发.打算做什么

a = b;
c = d;
Run Code Online (Sandbox Code Playgroud)

转换成

a = b,    //  <-  Note comma typo!
c = d;
Run Code Online (Sandbox Code Playgroud)

c++ comma-operator

165
推荐指数
6
解决办法
5万
查看次数

当所有逗号运算符都不作为逗号运算符时?

如果你看到这段代码,

class A{
public:
    A(int a):var(a){}
    int var;
};

int f(A obj) {
    return obj.var;
}

int main() {
    //std::cout<<f(23);    // output: 23
    std::cout<<f(23, 23);  // error: too many arguments to function 'int f(A)'
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

f(23, 23) 不编译,因为逗号在此处充当分隔符而不是逗号运算符.

所有逗号都不能用作逗号运算符?或者相反?

c++ comma-operator

8
推荐指数
4
解决办法
694
查看次数

这是C++中的有效赋值吗?

当我查看库代码时,我发现了以下行

int number = config.nodes,i,fanout=numP/2;
Run Code Online (Sandbox Code Playgroud)

我假设config是指向某个东西的指针,但声明中是否有逗号?并做那样的任务?

c++

0
推荐指数
1
解决办法
292
查看次数

标签 统计

c++ ×3

comma-operator ×2