C語言重要知識點總結【7】:C語言中的常量、變量、標識符
目錄
- 一、常量-
-
3.1 普通字符-
3.2 轉義字符(表格)-
3.3 常見字符與ASCII代碼表-
4.1 字符串所占內存字節數-
整型常量
:就是常整數,包括正整數、負整數和0。有十進制、八進制、十六進制三種表示形式。需要注意的是,八進制常整數在書寫時以數字0作前綴;十六進制以0x作前綴。1.實型常量
:又稱浮點型常量,采用十進制小數形式 和 指數形式表示。1.字符型常量
:用單引號括起來的單個字符,分為普通字符(‘a’,‘Z’,‘6’,’#’,’?’ )和轉義字符(’\n’是換行符、’\t’是水平制表符,橫向跳格,8個空格)1.字符串常量
:用雙引號括起來的字符串1.符號常量
:用標示符代表一個常量,使用之前必須定義,具有一改全改的優點。例如: #definePI
3.14 ## 1. 整型常量十進制整數
:書寫形式通常是整數的寫法。例如:0、16、88、666、-99 等。1.八進制整數
:書寫形式通常在八進制整數的前面加一個數字0(0作前綴)。例如:00、0111、015、021等,它們分別表示十進制整數:0、73、13、17。1.十六進制整數
:書寫形式通常是在十六進制整數的前面加0x(0x作前綴)。其中每個數字可以是 0 ~ 9、a ~ f 或 A~F 中的數字或英文字母。 例如:0x0(十進制0)、0x111(十進制273) 、0x15(十進制21)、0x21(十進制33 )、0x5a(十進制90 )、0Xa5(十進制165 )…… ## 2. 實型常量(浮點型常量)- 單引號括起來的字符包括:
英文字母大、小寫字符
各26個、數字字符
10個,以及空白符
(空格符、制表符、換行符),標點和特殊符號
(鍵盤上的共30個),它們也稱為C語言的基本字符集。- 如’a’,‘Z’,‘6’,’#’,’?’ 等是合法的字符常量,在內存中占一個字節。- 單引號內如果是一個空格符,也是一個字符常量。- 字符常量的值,就是它在ASCII編碼表中的值是個從0~127之間的整數,因此字符常量可以作為整型數據來進行運算。- 表達式 ‘Y’+32 的值為 121,字符'Y'
對應ASCII碼值是89- 表達式 ‘7’+‘6’ 的值為109,通過查表可以發現'7'
和'6'
對應的ASCII碼值分別是55和54。應該注意’7’和7是不一樣的,作為字符常量'7'
所代表的整型常量值是55,7
對應的是整型常量7。 ### 3.2 轉義字符(表格) 一般轉義字符
:'\n'
是換行符、'\t'
是水平制表符(將輸出的位置跳到下一個Tab位置,一個Tab位置為8,即橫向空8個格),'\?'
是一個問號……-八進制轉義字符
:反斜線后的八進制數可以不用 0 開頭,由 反斜杠’’ 和隨后的 1~3個八進制數字 構成的字符序列。’\60’、’\101’、’\141’分別表示字符’0’、‘A’和’a’。因為字符’0’、'A’和’a’的ASCII碼的八進制值分別為60、101和141。-十六進制轉義字符
由反斜杠’’ 和 字母x(字母x是小寫,不能用大寫X)及隨后的 1~2個十六進制數字 構成的字符序列。’\x30’、’\x41’、’\X61’ 分別表示字符’0’、‘A’和’a’。因為字符’0’、'A’和’a’的ASCII碼的十六進制值分別為0x30、0x41和0x61。 最后一個小知識點:換行符'\n'
對應的十進制數是10,可以用八進制數'\012'
表示。- 只要是“
雙撇號
”括起來的,就算只有一個字符也叫字符串,如"a"。字符常量 'a’與字符串常量"a"是不同的。- 一個字符在內存中只占一字節,而字符串本質上是多個字符組成的字符數組。C語言規定,在每一個字符串常量的結尾,系統都會自動加一個字符’\0’作為該字符串的“結束標志符”,系統據此判斷字符串是否結束。 這里要特別強調一點:’\0’是系統自動加上的,不是人為添加的。- ’\0’ 是 ASCII 碼為 0 的字符,它不會引起任何控制動作,也不是一個可以顯示的字符。- 比如字符串常量"CHINA",表面上看它只有 5 個字符,但實際上它在內存中占6個節,‘C’、‘H’、‘I’、‘N’、‘A’、’\0’ 各占一個字節。如果要輸出該字符串,’\0’ 不會輸出。也就是說,雖然實際上總共有 6 個字符,’\0’ 也包括在其中,但輸出時 ‘\0’ 不會輸出。系統從第一個字符 ‘C’ 開始逐個輸出字符,直到遇到 ‘\0’,則表示該字符串結束,停止輸出。- 如果“雙撇號”中能看見的字符有 n 個,則該字符串在內存中所占的內存空間為 n+1 字節。 ### 4.1 字符串所占內存字節數 雙撇號中什么都不寫
,則只有 ‘\0’ 一個字符,所以只占1字節。1."a"
有 1 個可見字符,占 2 字節。1."China"
有 5 個可見字符,占 6 字節。1."How are you"
中,空格也是字符(占一個字節),也算是可見的,所以總共有 11 個可見字符,共占 12 字節。1."I love you"
共 10 個可見字符,共占 11 字節。1."你好"
,可見4個字節,共占 5 字節。 【注意】第6個"你好"為什么占 5 字節?有 2 個可見字符不是應該占3字節嗎?C 語言規定,1個英文字符占 1個字節,而 1個中文字符占 2個字節,就算是中文的標點符號也是占 2個字節。所以兩個漢字占 4 字節,加上 ‘\0’ 總共是 5 字節。
大一下學期學習了C語言、暑假在家沒事又把C語言復習了一遍。因此,趁熱打鐵,把所學內容寫成筆記,以便以后復習,也希望能夠幫助大家學好C語言。
以下內容如有錯誤,請大家在評論區指正,謝謝支持,共同進步。 go、go、go !!!一、常量
在C語言中,數據有常量和變量之分: 若在程序執行過程中,其數值可以改變的量稱為`變量`
常量:分為 直接常量 和 符號常量 。直接常量:分為整型常量、實型常量、字符常量和字符串常量。(通常將整型常量和實型常量合稱為數值常量)首先大概看一下關於常量的內容:
整型常量:包括正整數、負整數 和 0
實型常量:又稱浮點型常量,有 十進制小數形式 和 指數形式 2種表示形式。
① 十進制小數形式:
由數字和小數點組成
例如:3.14159、0.0、88.0、0.123、-6.66
② 指數形式:
由於計算機輸入或輸入是無法表示上角或下角,故規定以字母e或E代表以10為底的指數。
指數形式的實型常量 由
十進制小數形式 或 十進制整型常量部分
+指數部分
,即e或E之前必須有數字,且e或E后面必須為整數。 錯誤形式: 0.35e 【e后面
缺少一個整數】
78e-1.2 【1.2
不是整數】3. 字符常量
3.1 普通字符
普通字符:用單撇號括起來的一個字符
轉義字符主要用來表示那些用一般字符不便於表示的控制代碼,構成字符常量的控制字符必須用轉義字符表示,這種“控制字符”在屏幕上是不能顯示的,轉義字符雖然包含兩個或多個字符,但它只代表一個字符。轉義字符的意思是將
\
后面的字符轉換成另外的意義。轉義字符分為一般轉義字符、八進制轉義字符和十六進制轉義字符。
共13個 轉義字符 含義(字符值) 作用 1 `\'` 單撇號 輸出單撇號 `'` 2 `\"` 雙撇號 輸出雙撇號`"` 3 `\?` 問號 輸出問號字符`?` 4 `\\` 反斜線 輸出反斜線字符`\` 5 `\a` 警告(alert) 產生聲音或視覺信號 6 `\b` 退格(backspace) 將光標當前位置后退一個字符 7 `\f` 換頁(form feed) 將光標當前位置移動到下一頁的開頭 8 `\n` 換行 將光標當前位置移動到下一行的開頭 9 `\r` 回車 將光標當前位置移動到本行的開頭0 10 `\t` 水平制表符 將光標當前位置移動到下一個Tab位置1 11 `\v` 垂直制表符 將光標當前位置移動到下一個垂直制表對齊點2 - 轉義字符 含義(字符值) 作用 12 `\o \oo 或 \ooo` 其中`o`代表一個八進制數字 八進制碼對應的ASCLL字符 與該八進制對應的字符3 13 `\xh[h···]` 其中`h`代表一個十六進制數字 與十六進制碼對應的ASCLL字符 與該十六進制對應的字符 3.3 常見字符與ASCII代碼表
4. 字符串常量
字符串常量是用 雙撇號
""
括起來的多個字符的序列,如:“a”、“abc123”、“China”、“你好”……5. 符號常量
符號常量:用標示符代表一個常量,使用之前必須定義,具有
一改全改
的優點。定義符號常量的一般形式:
#define 標識符 常量
例如:將
PI
定義為符號常量#define PI 3.14
- 要區分符號常量和變量是不一樣的,符號常量不占內存,只是一個臨時符號,代表一個值,在預編譯后這個符號就不存在了,故不能對符號常量賦新值。- 為與變量名相區別,習慣上符號常量用大寫字母表示,如PI(π),PRICE(價格),N(數)等 ``` #include<stdio.h> #define IP 3.14 //符號常量:在使用之前必須先定義
//從此行開始,以后所有的PI都代表3.14 int main() { float r,S,V; //定義3個單精度浮點型變量 r,c,s printf("請輸入圓的半徑 r="); scanf("%f",&r); //輸入圓的半徑 S=4IPrr; V=4.0/3IPrr*r; printf("\n圓的表面積 S=%.2f\n",S); printf("圓的體積 V=%.2f\n",V); return 0; }//優點:改一處,即改全部
運行結果…………………………………………<br> <img src="https://img-blog.csdnimg.cn/20200824175315446.png#pic_center" alt="在這里插入圖片描述"> # 二、變量 > 變量代表一個`有名字`、具`有特定屬性`的一個<mark>存儲單元</mark>。他用來存放數據,也就是存放變量的值。在對程序編譯連接時有編譯系統給每一個變量名分配一個 **存儲地址** 。 - **變量名開頭必須是字母或下划線,不能是數字。** 實際編程中最常用的是以字母開頭,而以下划線開頭的變量名一般都是系統專用的。- **變量名絕對不可以是C語言關鍵字**(C語言關鍵字一般常用的有32個,在譚浩強寫的《C程序設計》中有37個關鍵字),並且變量不能有空格。- 變量名的長度應當符合“min-length && max-information”原則。- 大寫字母和小寫字母是兩個不同的字符,sum和SUM不同變量名。- 一般而言,變量名用小寫字母表示,與人們日常習慣一致,以提高可讀性。 變量的數據類型: <img src="https://img-blog.csdnimg.cn/20200824184838160.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjAyMjA4Mw==,size_16,color_FFFFFF,t_70#pic_center" alt="在這里插入圖片描述"> ### 1. 常變量 C99允許使用常變量,方法是在定義變量時,前面加一個`關鍵字const`。
const int a=3; //定義一個整型變量,指定其值為3, //而且在變量的存在期間其值不能改變。
常變量具有變量的基本屬性:有類型、占儲存單元,只是不允許改變其值。常變量具有符號常量的優點,使用更方便。 <mark>常變量與符號符號常量區別</mark> 在編譯后符號常量就不存在了,二常變量需要占用存儲單元。
define PI 3.1415926 //定義符號常量
const float pi=3.1415926 //定義常變量
```
注意:有些編譯系統還未實現C99的功能,初學者盡量不用,了解即可。但如果當你對C語言更加深入地去學習,常變量其實也是一個比較重要的知識點。
三、標識符
用來對變量、符號常量名、函數、數組、類型、等命名的有效字符序列統稱標識符(identifier)。
C語言規定標識符只能由
字母
、數字
和下畫線
3種字符組成,且第一個字符必須是字母或下畫線
。- 例如:sum ,average , _total , Class , day ,month , Student_name , lotus_1_2_3 , BASIC , li_ling……- 不合法標識符:M.D.John ,¥123 , #33 , 3D64 , a>b(不能用標點符號 . ¥ # 等)- 標識符可以任意長,但一般只有前32位有效 C語言標識符分為以下三類:
關鍵字(32個)
: auto、break、case、char、const 、continue、default、do、double、else、enum、extern float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while,關鍵字是C語言中用來表示特殊含義的標識符,由系統提供。關鍵字有特定的語法意義,不允許用戶重新定義,也不能用作變量名或函數名。1.預定義標識符
: C語言中預先定義了一些標識符,他們有特定的含義,通常用做固定的庫函數中的函數名或預編譯處理中的專門命令。如scanf、printf、fabs、sqrt、define、include等。C語言允許用戶標識符與預定義標識符同名,但這將使這些標識符失去系統規定的原意。為了避免誤解,建議用戶為標識符取名時盡量不要與系統預先定義的標准標識符(如標准函數)同名。1.用戶標識符
:用戶標識符是由用戶自己定義的標識符,命名時應遵守標識符命名的原則,最好做到見名知義,這樣可以提高程序的可讀性,一般選用相應的英文單詞或拼音字母的形式,如min、max、sum、score(成績),aver(平均值)、row(行)、colum(列)、total(總數),max_value…… 變量的數據類型:
最后推薦系列文章:
- C語言重要知識點總結【4】:C語言的32個關鍵字和9種控制語句- C語言重要知識點總結【5】:C語言34種運算符優先級及結合性- C語言重要知識點總結【6】:C語言的9種控制語句(詳解)- C語言重要知識點總結【8】:C語言中變量的數據類型
以上內容如有錯誤,請大家在評論區指正,謝謝支持,共同進步。 加油!!!
如果你感覺我寫的內容對你有一定的幫助,請給我點一個 【贊】作為您對我的鼓勵, 謝謝!!