当前位置: C语言 -- 专题 -- 分号的使用

分号的使用

根据ISO/IEC 9899:2018标准第6.4.6 Punctuators节,分号(;)属于标点符号的范畴。关于标点符号,标准的定义原文是:A punctuator is a symbol that has independent syntactic and semantic significance.;即标点符号是具有独立语法和语义的符号。C语言中分号主要用作语句终止符。


根据ISO/IEC 9899:2018标准第6.8 Statements and blocks节,C语言中的语句包括:标签语句(labeled-statement)、复合语句(compound-statement)、表达式语句(expression-statement)、选择语句(selection-statement)、迭代语句(iteration-statement)、跳转语句(jump-statement),各语句的语法格式分别如下所示:

- 标签语句

identifier : statement
case constant-expression : statement
default : statement

- 复合语句

{ block-item-listopt }

- 表达式语句

expressionopt ;

- 选择语句

if( expression ) statement
if( expression ) statement else statement
switch( expression ) statement

- 迭代语句

while( expression ) statement
do statement while( expression ) ;
for( expressionopt ; expressionopt ; expressionopt) statement
for( declaration expressionopt ; expressionopt ) statement

- 跳转语句

goto identifier ;
continue ;
break ;
return expressionopt ;

其中表达式语句、迭代语句中的do语句、跳转语句终止时要使用分号表示语句终止;复合语句不需要使用分号表示语句终止;其它语句终止时有没有分号取决于statement的具体实现。

使用分号作为语句终止符可以告诉编译器:该语句到这来就结束了;例如:do语句结束时如果没有分号,编译器很可能将while解释为一个while语句的开始。