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

153
推荐指数
5
解决办法
3万
查看次数

C中完整的"for"循环语法是什么?

for在阅读其他人的代码时,我看到了一些非常奇怪的循环.我一直在尝试搜索for循环的完整语法解释,C但这很难,因为单词" for"出现在不相关的句子中,使得搜索几乎不可能有效地进行Google.

在阅读了这个让我再次好奇的帖子后,我想起了这个问题.

在for这里:

for(p=0;p+=(a&1)*b,a!=1;a>>=1,b<<=1);
Run Code Online (Sandbox Code Playgroud)

在中间条件下有一个逗号分隔两段代码,这个逗号有什么作用?右边的逗号我理解,因为它使得a>>=1和b<<=1.

但是在循环退出条件下,会发生什么?它是在何时p==0,何时a==1或何时发生时退出?

如果有人能帮助我理解这一点并且可能指向完整for循环语法描述的方向,那将是很棒的.

c syntax for-loop

59
推荐指数
3
解决办法
9万
查看次数

标签 统计

c ×2

comma-operator ×2

c++ ×1

for-loop ×1

operators ×1

syntax ×1