4

简而言之,这两个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不像代码中的其他参数(在编辑器中)那样带有大括号。

4

1 回答 1

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++);
于 2016-03-02T01:45:40.687 回答