当前位置:  开发笔记 > 编程语言 > 正文

理解逗号运算符

如何解决《理解逗号运算符》经验,为你挑选了2个好方法。

,所有三个声明中使用

int a = (1,2,3);
int b = (++a, ++a, ++a);
int c = (b++, b++, b++);  

逗号运算符.它计算第一个操作数1并丢弃它,然后计算第二个操作数并返回其值.因此,

int a = ((1,2), 3);          // a is initialized with 3.
int b = ((++a, ++a), ++a);   // b is initialized with 4+1+1 = 6. 
                             // a is 6 by the end of the statement
int c = ((b++, b++), b++);   // c is initialized with 6+1+1 = 8
                             // b is 9 by the end of the statement.

1在逗号运算符的情况下,从左到右保证评估顺序.



1> haccks..:

,所有三个声明中使用

int a = (1,2,3);
int b = (++a, ++a, ++a);
int c = (b++, b++, b++);  

逗号运算符.它计算第一个操作数1并丢弃它,然后计算第二个操作数并返回其值.因此,

int a = ((1,2), 3);          // a is initialized with 3.
int b = ((++a, ++a), ++a);   // b is initialized with 4+1+1 = 6. 
                             // a is 6 by the end of the statement
int c = ((b++, b++), b++);   // c is initialized with 6+1+1 = 8
                             // b is 9 by the end of the statement.

1在逗号运算符的情况下,从左到右保证评估顺序.



2> Sami Kuhmone..:

代码没有任何好处,没有正确思想的人会写它.你不应该花时间查看那种代码,但我仍然会给出解释.

逗号运算符,表示"执行左边的操作,丢弃任何结果,执行正确的操作并返回结果.将部分放在括号中对功能没有任何影响.

写得更清楚代码将是:

int a, b, c;

a = 3; // 1 and 2 have no meaning whatsoever

a++;
a++;
a++;
b = a;

b++;
b++;
c = b;
b++;

增量前和增量后算子在行为方式上存在差异,导致b和c值的差异.


这是糟糕的代码,但你*应该花时间看它,因为它会让你成为一个更好的编码器.好奇并学习不该做的事情是好的.这也是运动员在锻炼时拖着轮胎并穿着加重背心的原因:他们在练习中比在真实比赛中更加努力.
为什么在代码片段中使用postincrement?
推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有