围绕表达式的括号和括号基本上都做同样的事情吗?

时间:2016-03-02 01:39:30

标签: c++ visual-studio-2015 brackets curly-brackets

简而言之,这两个for周期的运作方式是否相同:

for (int i = 0; i < (p_size < size ? p_size : size); i++);
for (int i = 0; i < {p_size < size ? p_size : size}; i++);

循环位于方法(成员函数)中,p_size是其参数,size是属性(成员变量)。 Microsoft Visual Studio 2015会编译这两个代码,但p_size的颜色与代码中的其他参数(在编辑器中)的颜色不同。

1 个答案:

答案 0 :(得分:8)

这是有效的代码:

for (int i = 0; i < (p_size < size ? p_size : size); i++);

这是无效的代码:

for (int i = 0; i < {p_size < size ? p_size : size}; i++);

在表达式中间使用花括号是无效的。

我一般也会推荐std::min

for (int i = 0; i < std::min(p_size, size); i++);