在每个陈述之后是否必须加分号

时间:2018-12-09 20:25:44

标签: c++ syntax

以下2个代码之间是否有区别

    for (int i = 0; i < 3; i++)
    cout << i << endl,
    countSteps ++;

    for (int i = 0; i < 3; i++){
        cout << i << endl;
        countSteps ++;
    }

2 个答案:

答案 0 :(得分:2)

逗号字符在不同的句法元素下具有不同的含义。

在您的情况下,它是逗号运算符。

为清楚起见,以下内容并不构成声明。

cout << i << endl,

以下是。

cout << i << endl,
countSteps ++;

以下内容

cout << i << endl;

以分号结尾的语句。逗号没有。

对于您发布的代码,这两个代码块对您的程序结果没有任何影响。但是,最好了解语法结构之间的区别。

通常,它们可以基于逗号运算符的表达式求值的值而具有不同的行为。有关更多详细信息,请参见https://en.cppreference.com/w/cpp/language/operator_other#Built-in_comma_operator

答案 1 :(得分:1)

不,在这种情况下没有区别。 (除了第二个片段看上去并不难看。)

一般情况下,operator,可能会过载。那么第一个选项可能会导致怪异的效果。