資源描述:
《C語言編程要點》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、C語言編程要點---第1章C語言第1章C語言本章主要描述C語言一些基本要素。當(dāng)你開始編寫C程序時,你可能對C語言的一些基本問題感到困惑,如C語言所使用的約定、關(guān)鍵字和術(shù)語等。本章將回答這方面你經(jīng)常會遇到的一些問題。例如,switch語句是最常用的一種C語言構(gòu)件,本章將回答與它有關(guān)的三個常見問題。本章還涉及其它幾個問題,如循環(huán)、分支、運算符的優(yōu)先級和程序塊技術(shù)。在閱讀本章時,請注意有關(guān)switch語句和運算符優(yōu)先級的一些問題,這些問題常常會使C語言的初學(xué)者感到迷惑。1.1什么是局部程序塊(localbloc
2、k)?局部程序塊是指一對大括號({})之間的一段C語言程序。一個C函數(shù)包含一對大括號,這對大括號之間的所有內(nèi)容都包含在一個局部程序塊中。if語句和swich語句也可以包含一對大括號,每對大括號之間的代碼也屬于一個局部程序塊。此外,你完全可以創(chuàng)建你自己的局部程序塊,而不使用C函數(shù)或基本的C語句。你可以在局部程序塊中說明一些變量,這種變量被稱為局部變量,它們只能在局部程序塊的開始部分說明,并且只在說明它的局部程序塊中有效。如果局部變量與局部程序塊以外的變量重名,則前者優(yōu)先于后者。下面是一個使用局部程序塊的例子
3、:#includevoidmain(void);voidmain(){/*Beginlocalblockforfunctionmain()*/inttest_var=10;printf("Testvariablebeforetheifstatement:%d",test_var);if(test_var>5){/*Beginlocalblockfor"if"statement*/inttest_var=5;printf("Testvariablewithintheifstatemen
4、t:%d",test_var);{/*Beginindependentlocalblock(nottiedtoanyfunctionorkeyword)*/inttest_var=0;printf("Testvariablewithintheindependentlocalblock:%d",test_var)}/*Endindependentlocalblock*/printf("Testvariableaftertheifstatement:%d",test_var);}/*Endloca
5、lblockforfunctionmain()*/上例產(chǎn)生如下輸出結(jié)果:Testvariablebeforetheifstatement:10Testvariablewithintheifstatement:5Testvariablewithintheindependentlocalblock:0Testvariableaftertheifstatement:10注意,在這個例子中,每次test_var被定義時,它都要優(yōu)先于前面所定義的test_var變量。此外還要注意,當(dāng)if語句的局部程序塊結(jié)束時,程序
6、重新進入最初定義的test_var變量的作用范圍,此時test_var的值為10。請參見:1.2可以把變量保存在局部程序塊中嗎?1.2可以把變量保存在局部程序塊中嗎?用局部程序塊來保存變量是不常見的,你應(yīng)該盡量避免這樣做,但也有極少數(shù)的例外。例如,為了調(diào)試程序,你可能要說明一個全局變量的局部實例,以便在相應(yīng)的函數(shù)體內(nèi)部進行測試。為了使程序的某一部分變得更易讀,你也可能要使用局部程序塊,例如,在接近變量被使用的地方說明一個變量有時就會使程序變得更易讀。然而,編寫得較好的程序通常不采用這種方式來說明變量,你應(yīng)
7、該盡量避免使用局部程序塊來保存變量。請參見:1.1什么是局部程序塊?1.3什么時候用一條switch語句比用多條if語句更好?如果你有兩個以上基于同一個數(shù)字(numeric)型變量的條件表達式,那么最好使用一條switch語句。例如,與其使用下述代碼:if(x==l)printf("xisequaltoone.");elseif(x==2)printf("xisequaltotwo.");elseif(x==3)printf("xisequaltothree.");elseprintf("xi
8、snotequaltoone,two,orthree.");不如使用下述代碼,它更易于閱讀和維護:switch(x){case1:printf("xisequaltoone.");break;case2:printf("xisequaltotwo.");breakcase3:printf('xisequaltothree.");break;default:printf("xisnotequaltoone,two