我注意到在很多时候,重构C和C++代码的不同部分,使用逗号而不是半冒号来分隔语句.像这样的;
int a = 0, b = 0;
a = 5, b = 5;
在我期待的地方
int a = 0, b = 0;
a = 5; b = 5;
我知道C和C++允许使用逗号分隔语句(特别是循环头),但是这两个代码之间有什么区别?我的猜测是,逗号被留在了cut&;粘贴,但这是一个错误,它会影响执行吗?
我注意到在很多时候,重构C和C++代码的不同部分,使用逗号而不是半冒号来分隔语句.像这样的;
int a = 0, b = 0;
a = 5, b = 5;
在我期待的地方
int a = 0, b = 0;
a = 5; b = 5;
我知道C和C++允许使用逗号分隔语句(特别是循环头),但是这两个代码之间有什么区别?我的猜测是,逗号被留在了cut&;粘贴,但这是一个错误,它会影响执行吗?
这对你发布的代码没有影响.一般来说,逗号就像分号一样分隔表达式,但是,如果将整个表达式视为一个表达式,则逗号运算符意味着表达式的计算结果为最后一个参数.
下面是一个例子:
b = (3, 5);
将判断3,然后判断5,并将后者分配给b.So b = 5
.请注意,括号在这里很重要:
b = 3, 5;
将计算b = 3
,然后为5,整个表达式的结果为5,但仍为b == 3
.
当迭代器代码不是简单的i++
,但是需要执行多个命令时,逗号操作符在for循环中特别有用.在这种情况下,分号不能很好地与for循环语法配合使用.