简而言之,这两个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
的颜色与代码中的其他参数(在编辑器中)的颜色不同。
答案 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++);