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

Ste*_*vić 4 c++ brackets curly-brackets visual-studio-2015

简而言之,这两个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++);
Run Code Online (Sandbox Code Playgroud)

循环在方法(成员函数)内,p_size是它的参数,size是一个属性(成员变量).Microsoft Visual Studio 2015编译这两个代码,但p_size不会像使用大括号的代码中的其他参数(在编辑器中)那样着色.

Bil*_*nch 8

这是有效的代码:

for (int i = 0; i < (p_size < size ? p_size : size); i++);
Run Code Online (Sandbox Code Playgroud)

这是无效的代码:

for (int i = 0; i < {p_size < size ? p_size : size}; i++);
Run Code Online (Sandbox Code Playgroud)

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

我也一般建议std::min:

for (int i = 0; i < std::min(p_size, size); i++);
Run Code Online (Sandbox Code Playgroud)