官术网_书友最值得收藏!

  • C程序設計語言
  • 魏東平 朱連章 于廣斌編著
  • 1807字
  • 2018-12-29 14:37:34

2.3.1 常量

在程序中可以直接使用的數據稱為常量,其值在程序運行過程中不可以改變,包括整型常量、實型常量、字符型常量、字符串常量及符號常量等。

1.整型常量

允許使用的整型常量如下。

① 十進制數:以非零數字開始的整數,如-434、0、2345。

② 八進制數:以數字0開始的整數,如0127、030、-0123。

③ 十六進制數:以0x開始的整數,如0x1A、0x4A2、-0xB7。

整型常量可以用下列方法來顯式地指明其類型:

① 當任一整型常量后跟一個字母l(或L)時,表示是長整型數。例如,3456L、0x2300L、-0146L分別為十進制、十六進制、八進制長整數。

② 當任一整型常量后跟一個字母u(或U)時,表示是無符號整型數。例如,34u。

通常,整型常量是以補碼的形式存儲在內存中的,最高位(即符號位)為0表示正數,為1表示負數。但是,也允許使用無符號整數,即將最高位不看做符號位,而用來表示數值。微型計算機中,短整型數在內存中一般用2個字節(16bit)存儲,整型數和長整型數用4個字節(32bit)存儲。無符號短整型、整型、長整型比相應的有符號短整型、整型、長整型表示的數的范圍在正數的方向上擴大了1倍,但不能表示負數。

2.實型常量

實型常量即實數,又稱浮點數,由整數部分和小數部分組成,只有十進制數的形式。實數有兩種表示方法:小數形式和指數形式。

小數形式:由符號、數字和小數點組成,如0.5、15.02、-534.、.789、0.0、.0、0.等。注意,小數點必須有,不可省略。

指數形式:即采用可科學計數法表示形式,由尾數、字母e或E和指數部分組成,例如,1.23E-2、-32e4分別表示1.23×10-2、-32×104。注意,字母e或E之前必須有數字,之后的指數部分必須為整數。

實數一般分為單精度和雙精度兩種。單精度實數用4個字節(32bit)存儲,有效數字位數為6~7位;雙精度實數用8個字節(64bit)存儲,有效數字位數為15~16位。

3.字符型常量

用一對單引號括起來的單個字符稱為字符型常量,如'A'、'b'、'*'等。需要注意的是,單引號只作為定界符,不是字符型常量的內容。字符型常量可以是ASCII字符集中任意的可打印字符,包括空格字符。字符型常量具有數值,其值就是該字符的ASCII碼值(如'A'的值是65,'a'的值是97),可以作為整數參與運算。例如,'a'+3表示將'a'字符的ASCII碼值97與整數3相加,結果為100。

另外,還有一種稱為轉義字符的特殊形式的字符型常量,用于表示ASCII字符集中的控制代碼或某些其他功能代碼,如表2.2所示。轉義字符也是由一對單引號括起來的一個字符,以“\”開始后跟一個字符,或一個“\”后跟一個八進制數或十六進制數組成。例如,'\"'表示雙引號,'\r'表示回車,'\0'代表空字符,'\x20'和'\40'都代表空格。

表2.2 轉義字符序列

通常,以一個字節來存放一個字符。在內存中,字符型數據是以其ASCII碼值的形式存儲的,其存儲形式與整數的存儲形式類似。如果系統將字符型數據處理成有符號的整數,則有符號字符型數據和整型數據在0~127 的范圍內是可以通用的。如果系統將字符型數據處理成無符號的整數,則無符號字符型數據和整型數據在0~255 的范圍內是可以通用的。不同系統的處理方式是不同的,因此,具體使用時要查看系統的有關資料,或者上機試一下。

4.字符串常量

字符串常量是用一對雙引號括起來的若干個字符,例如,"I am a student"、"How are you?"、"b"、"abc567"、""(即空串)。

字符串常量中可以包含空格、轉義字符等任意字符,也可以是中文。注意:雙引號作為字符串的定界符,不是字符串常量的內容,當計算字符串常量的長度時,雙引號不計算在內。

在C語言中,字符串常量的長度不受限制,編譯程序在處理字符串常量時自動在其最后加一個'\0'(null)作為“字符串結束標志”。因此,字符串的最小存儲長度總比字符串中的實際字符個數多1。例如,"I am a student"的存儲長度至少是15,而不是14。對于'a'和"a",前者是字符常量,占1個字節,后者是字符串常量,最小存儲長度為2,因為它實際上包含兩個字符'a'和'\0'。

5.符號常量

可以將在程序中多次出現的某常量定義成一個標識符,這個標識符稱為符號常量。符號常量一般(不是必須)用大寫英文字母表示,必須“先定義后使用”,其定義形式如下:

            #define符號常量名 所代表的值

例如:

            #define  PI  3.14

這樣的符號常量在程序中一旦定義之后,在其后面的程序中只要碰到PI標識符,系統就認為它的值為3.14。

注意:在程序中絕對不可以給符號常量賦值。例如,PI定義為符號常量之后,程序中如果出現如下的類似語句:

            PI=3.1415926;

則是錯誤的。也就是說,符號常量一旦定義,就只能使用,而不能改變其值。

使用符號常量可以提高程序的可讀性以及常量修改的一致性。例如,將上面的3.14 改為3.1415926,則隨后的程序中所有的PI值都變成了3.1415926。

主站蜘蛛池模板: 肇东市| 英吉沙县| 喜德县| 澎湖县| 定南县| 通山县| 台东市| 栾城县| 广昌县| 习水县| 荃湾区| 积石山| 湘西| 白河县| 噶尔县| 平南县| 九寨沟县| 梅州市| 重庆市| 会东县| 乐至县| 连云港市| 东兰县| 威海市| 黎川县| 太仓市| 云林县| 山阳县| 宁海县| 合山市| 丰原市| 金堂县| 南和县| 东源县| 高邑县| 夏邑县| 西吉县| 南华县| 金秀| 如皋市| 阳信县|