表达式周围的括号和大括号基本上做同样的事情吗?
Do both parentheses and braces around expressions basically do the same thing?
简单地说,这两个 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
没有像代码中带有大括号的其他参数(在编辑器中)那样着色。
这是有效代码:
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++);
简单地说,这两个 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
没有像代码中带有大括号的其他参数(在编辑器中)那样着色。
这是有效代码:
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++);