if(...) {
...
}
在上面的例子中似乎;
是可选的,在c / c ++中需要}
之后是分号吗?
答案 0 :(得分:14)
int a[2] = {1,2}, j = 5;
当使用{}
完成数组或结构的初始化时,所有后续变量都在,
之后声明。
修改:当您更改问题时;在;
,class
,初始化语法声明后,enum
是必需的。
class A {}; // same for `struct
enum E {}; // enum class (c++0x)
int a[] = {1,2}; // array or object initialization
答案 1 :(得分:6)
分号本身就是一个空语句,您可以在语句合法的任何地方添加额外的分号。因此,在if
之后的大括号后面加上分号是合法的,尽管它根本不与if
相关。在C ++中的类声明之后,我可以想到在分支后面的分号需要的唯一地方。
答案 2 :(得分:3)
如果这是声明的结尾,那么在大括号之后的分号是manadatory。如果它是语句的结尾,则不需要分号,如果使用了分号,则会产生一个额外的空语句,如果这是中间的话,这可能是非法的一个if
- else
或do
- while
(或C {+ try
- catch
)