C语言结束标志分号的作用

众所周知,分号在C语言中的作用是作为一条语句结束的标识,在C程序中如果不小心多写了一个分号可能不会造成什么不良后果:这个分号也许会被视作一个不会产生任何实际效果的空语句。但是如果在if或者while语句后面紧跟一条语句时,如果此时在if或者while语句之后多加了一个分号的话,将会产生意想不到的后果。如下所示:

if(a>b);

a=b;

该程序作者的意图本来是当a大于b时,将b的值赋给a,然而由于if语句后多了一个分号,后面的语句a=b就和if语句没有任何关系了,也就是在任何情况下b的值都会赋给a,即使a<b。由此可见当程序中出现多余的分号时,会隐藏不易被发现的错误。与此同时当程序中遗漏一个分号时,同样会招致麻烦,请看下面的示例:

if(a<3)

return

b=c;

此处return后面遗漏了一个分号;然而这段程序代码仍然会顺利通过编译而不会报错,这是因为在C语言中一句代码的结束标志并不是换行符而是分号;即return和下面一行的b=c;才是一条真正的C语句,其相当于

if(a<3)

return b=c;(顺便提一句此时返回的是c的值,而不是有些人认为的1.。。。。。。。。。。。。。)

相信通过上面的讲解大家对于分号的认识一定相当深刻了。。。

注:分号标示在C/C++语句结束,多了一个分号“;”、少了一个分号“;”都可能造成不良后果。程序员在程序编写过程中应该小心谨慎,不让这种错误成为程序编写和编译的绊脚石。

猜你喜欢

转载自blog.csdn.net/u010248077/article/details/80711820