C語言分號的用法


分號的使用是初學者往往容易犯錯的地方,要么少了分號,要么多了分號。少了分號多見於定義變量和給變量賦值的時候,而多了分號則多見於分支結構和循環結構中。如程序段1、2、3所示。

   
   //程序段1,在定義變量和賦值時少了分號
   1 int a,b
   2 a=20;
   3 b=30

   
  //程序段2,分支結構中多了分號
   1 if(a>b);
   2  printf("%d",a);

   
//程序段3,循環結構中多了分號

   1 while(a<50);
   2  a++;
  3 for(i=1;i<10;i++);
   4  b++;
  
   那么,究竟在什么時候該使用分號,什么時候不該使用分號呢?許多資料列舉了使用分號的不同情況,但是未能觸及本質,也給學習者帶來了記憶上的負擔,有些書籍則避而不談,只是通過學習者對示例程序的模仿而形成的“語感”來決定是否使用分號。
   其實,只需弄清分號在C語言中的含義,什么時候使用分號的問題就迎刃而解了。在C語言中,分號表示語句的結尾,意即一個分號表示着一句具有完整意義的C語句的完結。而什么是“具有完整意義的C語句”呢?即是意思明確,說完了一件事情,完成了一個操作的C語句。
   如程序段1中的“b=30”,表示將30賦值給變量b,意思完整,操作完成,因此需要加上分號。而程序段2本意是想表達如果a大於b,那么打印a,而示例的寫法卻告訴計算機“if(a>b)”是一個完整意義的C語句了,完成了一個操作了。這在語法上是沒有錯,而卻與程序設計者的初衷相去甚遠,此時的含義已經變成了如果a大於b,那么什么都不做(因為分號前沒有任何操作)。程序段3也是如此。
   循環結構還有一種do-while語句,其結構形式如下所示。  
  do{
       程序段S
     }while(表達式P);
   這處while后的分號是必不可少的,為何?因為此處已經將完整的意思表達清楚,如果不加分號,那么計算機就會將這部分與此后的代碼誤認為是同一句語句,造成表意不清的錯誤。
   其實,C語言的語法都有其設計的原理和背景,如果能多了解這些原理和背景,那么語法就不再是需要死記的憑空生出來的規則,而是自然的邏輯演繹的結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM