- C語言入門很輕松(微課超值版)
- 云尚科技編著
- 2185字
- 2022-07-29 14:43:37
3.1 使用常量
常量是固定值,在程序執行期間不會改變。常量可以是任何的基本數據類型,比如整型常量、浮點常量、字符常量,或字符串常量,也有枚舉常量等。在程序中,常量可以不經說明而直接引用。
3.1.1 認識常量
在程序中,有些數據是不需要改變的,也是不能改變的,因此,我們把這些不能改變的固定值稱之為常量。到底常量是什么樣的呢?下面給出幾條語句。
int a=1; char ss="a" printf("Hello \n");
此段程序語句中“1”“a”“Hello”,這些在程序執行中始終是保持不變的,它們都是常量。注意,常量的值在定義后不能進行修改。
3.1.2 整型常量
在C語言中,整型常量有十進制、八進制、十六進制3種進制表示方法,并且各種數制均有正(+)負(-)之分,正數的“+”可省略。例如,0、-12、255、1、32767等都是整型數據。
(1)十進制:包含0~9中的數字,但是一定不能以0開頭,如15、-255。
(2)八進制:只包含0~7中的數字,必須以0開頭,如017(十進制的15)、0377(十進制的255)。
(3)十六進制:包含0~9中的數字和a~f中的字母,以0x或0X開頭,如0xf(十進制的15)、0xff(十進制的-1)、0x7f(十進制的127)。
以下是各種類型的整型常量的實例:

☆大牛提醒☆
可以在十進制整型常量后面添加l或u來修飾整型常量,若添加l或L則表示該整型常量為“長整型”,如17L;若添加u或U則表示該整型常量為“無符號整型”,如17u;若添加lu或LU則表示該整型常量為“無符號長整型”,如17LU;這里的l或u不區分大小寫。
【例3.1】編寫程序,在命令行中輸出整型常量(源代碼\ch03\3.1.txt)。

程序運行結果如圖3-1所示。

圖3-1 例3.1的程序運行結果
☆大牛提醒☆
整型數據是不允許出現小數點和其他特殊符號的。另外,在計算機中,整型常量以二進制方式存儲在計算機中;在日常生活中,數值的表示是以十進制為主。
3.1.3 浮點常量
C語言中的浮點型常量數據就是平常所說的實數。在C語言中,它有兩種表示形式,一種是十進制小數形式;一種是指數形式。
(1)十進制小數形式:由數碼0~9和小數點組成。
例如:0.1、25.2、5.789、0.13、5.8、300.5、-267.8230等均為合法的實數。注意,必須有小數點。
(2)指數形式:由十進制數,加字母e或E以及階碼(只能為整數,可以帶符號)組成。其一般形式為a E n,其中a為十進制數,n為十進制整數,它的值為a*10n。例如:2.8E5、3.9E-2、0.1E7、-2.5E-2等。
☆大牛提醒☆
科學記數法要求字母e(或E)的兩端必須都有數字,而且右側必須為整數,如下列科學記數法是錯誤的:e3、2.1e3.2、e。
【例3.2】編寫程序,在命令行中輸出浮點常量(源代碼\ch03\3.2.txt)。

程序運行結果如圖3-2所示。從結果可以看出,直接輸出的數值都沒有發生變化,這些數值都是浮點常量。

圖3-2 例3.2的程序運行結果
3.1.4 字符常量
字符常量是用單引號'括起來的一個字符,一個字符常量在計算機的存儲中占據一字節,例如:'a'、'b'、'='、'+'、'?'都是合法字符常量。字符常量分為一般字符常量和轉義字符。
1.一般字符常量
一般字符常量的值為該字符的ASCII碼值。如'a'、'A'、'0'、'?'等都是一般字符常量,但是'a'和'A'是兩個不同的字符常量,'a'的ASCII碼值為97,而'A'的ASCII碼值為65。在C語言中,字符常量有以下特點:
· 字符常量只能用單引號括起來,不能用雙引號或其他括號。
· 字符常量只能是單個字符,不能是字符串。
· 字符可以是字符集中任意字符。但數字被定義為字符型之后就不能參與數值運算。如'5'和5是不同的,'5'是字符常量,不能參與運算。
2.轉義字符
除了正常顯示的字符外,還有一些控制符是無法通過正常的字符形式表示的,如常用的回車、換行、退格等。因此,C語言還使用了一種特殊形式的字符常量,這種特殊字符稱為轉義字符。
轉義字符是以反斜線(\)開頭,后跟一個或幾個字符的特定字符序列。它表示ASCII字符集中控制字符、某些用于功能定義的字符和其他字符,不同于字符原有的意義,故稱為“轉義”字符。如'\n'表示回車換行符,'\\'表示字符“\”。常用的轉義字符如表3-1所示。
表3-1 C語言中常見的轉義字符

廣義地講,C語言字符集中的任何一個字符都可用轉義字符來表示。如表3-1中所示的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進制和十六進制的ASCII碼值。例如,\141和\x61都表示字母a,\134和\X5C都表示反斜線,\XOA表示換行等。
【例3.3】編寫程序,在命令行中輸出字符常量與轉義字符(源代碼\ch03\3.3.txt)。

程序運行結果如圖3-3所示。

圖3-3 例3.3的程序運行結果
3.1.5 字符串常量
字符串常量是由一對雙引號括起的字符序列。例如:"Hello World"、"C program"、"3.14"等都是合法的字符串常量,字符串常量和字符常量是不同的量。它們之間主要有以下區別。
(1)字符常量由單引號括起來,字符串常量由雙引號括起來。
(2)字符常量只能是單個字符,字符串常量則可以含一個或多個字符。
(3)可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。
☆大牛提醒☆
在C語言中沒有相應的字符串變量,但可以用一個字符數組來存放一個字符串常量,這在后面的章節中會詳細介紹。
(4)字符常量占一字節的內存空間。字符串常量占的內存字節數等于字符串中字節數加1。增加的一字節中存放字符"\0" (ASCII碼值為0),這是字符串結束的標志。
例如:字符串"C program"在內存中所占的字節可以表示為如下所示的樣式。

字符常量'a'和字符串常量"a"雖然都只有一個字符,但在內存中的情況是不同的。
字符常量'a'在內存中占一字節,可表示為如下所示的樣式。

字符串常量"a"在內存中占兩字節,可表示為如下所示的樣式。

【例3.4】編寫程序,在命令行中輸出字符串常量(源代碼\ch03\3.4.txt)。

程序運行結果如圖3-4所示。

圖3-4 例3.4的程序運行結果
- ExtGWT Rich Internet Application Cookbook
- Kibana Essentials
- Mastering OpenCV Android Application Programming
- arc42 by Example
- Python自動化運維快速入門
- 看透JavaScript:原理、方法與實踐
- 數據結構習題精解(C語言實現+微課視頻)
- 自然語言處理Python進階
- Linux Device Drivers Development
- Learning Material Design
- 分布式數據庫原理、架構與實踐
- R語言實戰(第2版)
- Sitecore Cookbook for Developers
- SQL Server實例教程(2008版)
- Processing開發實戰