2.1 常量
C++程序中的數據可分為常量與變量兩大類。常量是在程序運行過程中不變的量,變量是在程序運行過程中可發(fā)生變化的值。在編程時,常量和變量必須遵循“先聲明,后使用”的原則,即所有常量和變量必須在使用前用說明語句進行說明,否則編譯時將會產生錯誤。本節(jié)主要針對常量進行介紹,下一節(jié)將著重介紹變量的相關內容。
2.1.1 聲明常量
一般來說,根據書寫形式區(qū)分,常量可分為符號常量和直接常量。直接常量就是通常說的常數,如:123、3.14、“a”、“&”等。符號常量如:
const float pi=3.1415926;
上述聲明就聲明了常量pi為一個符號常量,在程序中用pi代替3.1415926,提高了程序的可讀性和可維護性。但是,在更多情況下,根據常量的定義方法區(qū)分,常量可分為如下兩種:
● const常量
● 宏常量
其中,用const定義的常量,稱為正規(guī)常量,其說明語句的一般形式為
const <類型名> <常量名> = <表達式>;
通常,使用const定義常量需要遵循一些注意事項,具體如下:
● 必須以const開頭。
● 類型名為基本類型及其派生類型,可以省略。
● 常量名為標識符。
● 表達式應與常量類型一致。
而宏常量是用#define定義的常量,其說明語句的一般形式為
#define <宏名> <常量>
宏常量的具體定義規(guī)則如下:
● 宏名可以是簡單的字符名,也可以是帶有參數的函數名。
● 常量可以是數值、字符串和函數等。
例如,下列程序代碼定義了常量pi的值為3.1415926,分別采用const關鍵字和#define關鍵字定義,其定義語法稍有不同。
Const float pi=3.1415926; //定義常量pi的值為3.1415926 #define pi 3.1415926; //定義宏常量pi的值為3.1415926
上述程序代碼定義符號常量pi,然后在程序中使用pi,跟使用常數3.1415926的效果是一樣的。編譯器在編譯時,把符號pi替換成3.1415926,當需要修改pi的值時,只需要修改上面的語句即可。
注意:預定義符號即定義宏常量與符號常量不同,在編譯時使用常數替代了所有的預定義符號,這樣在代碼中的相應位置實際都是常數。程序中過多的常數會導致程序代碼量變大,而且在多個源文件中定義了同樣的符號,會產生符號重定義的問題。使用常量優(yōu)于#define宏,其優(yōu)點在于可指定類型信息。
在程序設計中,盡量使用符號常量來代替常數,這是一種好的編程習慣,這樣可以增加程序的可讀性、可維護性。例如,在數值計算中,會經常遇到一些常量,比如圓周率。如果把它定義成符號常量,當需要更改常量值的時候,只需要更改符號常量的定義語句即可。
2.1.2 常量應用示例
在進行程序設計時,常量的應用很普遍。例如,圓周率π=3.1416。在需要常量的地方,直接使用常量的數值的方法非常不好,例如,需要計算圓的面積,采用下列表達式:
s = 3.1416*r*r;
然而,如果此處需要提高計算精度,將π的值改為3.1415927進行計算,用戶就不得不將程序中所有的π值從3.1416改為3.1415927,這不僅煩瑣,更重要的是很容易出錯。
【范例2-1】常量應用示例。該范例在一個C++程序中定義了常量,并在主函數中使用該常量,讀者可觀察其使用方法和作用,其操作步驟如下所示:
①創(chuàng)建C++源程序。打開Visual C++ 6.0的集成開發(fā)環(huán)境,單擊菜單【File】/【New】,彈出【New】對話框。單擊其【File】選項卡,選擇其中的【C++ Source File】項,并在右側填寫文件名及路徑。在該示例中,文件名為“2-1”,并選擇該文件的保存路徑,如圖2-1所示。確定輸入及選擇的保存路徑無誤后,單擊【OK】按鈕,完成建立。

圖2-1 創(chuàng)建C++源程序
上述步驟中,單擊【OK】按鈕后,Visual C++將進入C++源程序的編輯界面,如圖2-2所示,用戶可在該界面中輸入源程序代碼。

圖2-2 源程序編輯界面
②在上述Visual C++源程序的代碼編輯區(qū)中輸入源程序代碼,如代碼清單2-1所示。
代碼清單2-1
1 #include <iostream.h> //預處理文件 2 void main() 3 { 4 const double pi=3.141592635898; //定義圓周率常量pi 5 const double radius=8.5; //定義半徑常量radius 6 cout<<"area of circle of radius"<<radius<<"is"<<pi*radius*radius<<"\n"; 7 //輸出結果 8 }
警告:#include <iostream.h>為添加輸入/輸出庫函數,這樣在源程序中就可以使用諸如cout和cin等輸入/輸出函數,否則系統(tǒng)將報錯。
③編譯連接源程序。完成源程序的錄入編輯后,需要查看該程序的運行效果,必須先對源程序進行編譯和連接。在使用菜單【Build】/【Compile】命令或快捷鍵【Ctrl+F7】進行編譯時,由于沒有建立工作區(qū),Visual C++將給出如圖2-3所示的提示信息,詢問用戶是否建立一個默認的工作區(qū)。

圖2-3 提示信息
此處單擊【是】按鈕即可,系統(tǒng)將在C++源程序所在的目錄下生成工程文件。如編譯沒有錯誤,那么使用【Build】/【Build】菜單命令或快捷鍵【F7】進行連接,建立應用程序,最終的編譯連接結果應在輸出窗口中顯示,如圖2-4所示。

圖2-4 連接輸出信息
【運行結果】經過上述步驟后,就可以運行該源程序,用以查看運行結果。該實例中定義的常量pi值為3.141592635898,半徑radius值為8.5,其圓的面積為pi*radius*radius,其運行結果如圖2-5所示。

圖2-5 運行結果
【范例解析】讀者可以看出,范例 2-1的功能為打印給定半徑的圓的面積。上述代碼中,定義了兩個符號常量,分別為pi和radius,在定義中就給定了這兩個常量的值,在最后的輸出語句中給出求圓面積的公式即可。
提示:上述代碼中定義的常量均為double型常量,表示雙精度類型,這在下面的數據類型中將詳細講解。
至此,關于常量在具體程序中的應用就完成了。讀者可以看到,在具體應用程序中,使用常量可以方便程序,但也造成一些問題,如上述示例中,半徑的值只能在程序中指定,而不能根據用戶的需求指定,這就限制了程序的使用范圍,該問題的解決需要使用下面要介紹的變量。
- 腦動力:C語言函數速查效率手冊
- Verilog HDL數字系統(tǒng)設計入門與應用實例
- Windows XP中文版應用基礎
- 網絡安全與防護
- Enterprise PowerShell Scripting Bootcamp
- R Data Analysis Projects
- 計算機組裝與維修實訓
- Microsoft System Center Data Protection Manager Cookbook
- Win 7二十一
- SolarWinds Server & Application Monitor:Deployment and Administration
- NetSuite ERP for Administrators
- 信息技術基礎應用
- C# 2.0實例自學手冊
- 小數據之美:精準捕捉未來的商業(yè)小趨勢
- 網絡工程師必讀:網絡安全系統(tǒng)設計