相关疑难解决方法(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万
查看次数

如何使用C++在一行中声明和定义多个变量?

我总是认为,如果我声明这三个变量,它们都将具有值0

int column, row, index = 0;
Run Code Online (Sandbox Code Playgroud)

但我发现只有索引等于零而其他的都是垃圾,如844553和2423445.

如何在不声明新行的每个变量的情况下将所有这些变量初始化为零?

c++

152
推荐指数
9
解决办法
29万
查看次数

逗号作为变量初始化的分隔符(不作为运算符)

这似乎是一个简单的问题,但是我没有用我自己的风格检查过多少年......当初始化用逗号分隔的变量时,我认为以下是不安全的做法:

unsigned int n = foo.size, nxn = n * n;

因为我实际上并没有使用逗号运算符作为语法糖等; 而是表明两个表达式是独立的 - 作为对'细粒度并行'(或表达式独立性)的一种隐式评论,通常会使代码更简洁,例如,

if (<some condition>)
    a = true, b = value;
Run Code Online (Sandbox Code Playgroud)

而不是要求{}分号分隔表达式的范围.

但我的问题是重新检查变量初始化的情况.我的假设是不正确的,nxn不能依赖于按预期初始化?或者我一直在误解?

c c++ variables initialization comma

8
推荐指数
1
解决办法
180
查看次数

标签 统计

c++ ×3

c ×1

comma ×1

comma-operator ×1

initialization ×1

variables ×1