【发布时间】:2010-11-08 20:34:50
【问题描述】:
我有一个简单的问题,主要是出于好奇。
这两行代码有什么区别? (在 C++ 中)
for(int i = 0; i < N, N > 0; i++)
for(int i = 0; i < N && N > 0; i++)
条件的选择完全是任意的,我只对 , 和 && 之间的区别感兴趣。
无论如何我都不是编码的初学者,但我从不为逗号操作符烦恼。
有性能/行为差异还是纯粹的审美差异?
最后一点,我知道有比条件运算符更大的性能鱼,但我只是好奇。放纵我。
编辑 感谢您的回答。
事实证明,提示这个问题的代码以我所描述的方式滥用了逗号运算符。我想知道有什么区别以及为什么它不是 && 运算符,但它只是写错了。我不认为它有什么问题,因为它工作得很好。谢谢你帮我理顺。
【问题讨论】:
-
他没有说他很担心——只是好奇。我真的希望人们在每次有人“只想知道”时停止挥舞“过早优化”的旗帜。好奇心是一件好事。
-
我想知道如果 SO 实施一个过滤器可以节省多少时间,每当有人在问题中提到“性能”或“更快”等词时,就会自动发布一条评论说,“你'不允许考虑这个,公民,现在回去工作';-)
-
“过早引用 Knuth 是许多其他邪恶的根源。” -- 我
-
“过早做任何事情都是邪恶的,这就是过早的定义:)”——我
-
你不是唯一一个不用逗号操作符的人,它只是不是很有用。正如您刚刚发现的那样,它可能会导致错误。我唯一一次使用它是在 for 循环的第一个或第三个表达式中,同时初始化或增加两个变量。
标签: c++ loops logical-operators comma-operator