tft每日頭條

 > 科技

 > c語言數據形式有哪幾種

c語言數據形式有哪幾種

科技 更新时间:2024-10-15 04:27:36

c語言數據表現形式

編寫 C 語言程:(1)要有正确的解題思路,即學會設計算法。(2)掌握 C 語言的語法,知道怎樣使用 C 語言所提供的功能編寫出一個完整的正确的程序。(3)在寫算法和編寫程序時,要采用結構化程序設計方法,編寫出結構化的程序。編寫程序時要掌握c語言的語法。

數據的表現形式及其運算

C 語言的一些語法規定,一般不要硬背死記,因為編程時可以帶資料或可以上網查,大緻知道有這些語法規定就可以了,把精力用在編寫算法上。

1常量和變量

數據有兩種表現形式:常量和變量。

1.常量:在程序運行過程中,其值不能被改變的量稱為常量。數值常量就是數學中的常數。

常用的常量有以下幾類:

(1)整型常量。如12345,0,-345等都是整型常量。

(2)實型常量。有兩種表示形式:

①十進制小數形式,由數字和小數點組成。如123.456,0.345,-56.79,0.0,12.0等。

②指數形式,如12.34e3(代表12.34×10^3),-346.87e-25(代表-346.87×10^(-25))。由于在計算機輸入或輸出時無法表示上角或下角,故規定以字母 e 或 E 代表以10為底的指數。 e 或 E 之前必須有數字,且 e 或 E 後面必須為整數。不能寫成如:e4,12e2.5。

(3)字符常量。有兩種形式的字符常量

①普通字符,用單撇号括起來的一個字符,如:' a ','3','?',不能寫成' ab ',單撇号隻是界限符,字符常量隻能是一個字符,不包括單撇号。' a '和' A ’是不同的字符常量。

字符常量存儲在計算機存儲單元中時,并不是存儲字符(如 a , Z ,#等)本身,而是以其代碼(一般采用 ASCii代碼)存儲的,例如字符‘ a '的 ASCii代碼是97,在存儲單元中存放的是97(以二進制形式存放),因為計算機隻認識0和1,c語言編譯器就是橋梁。

在ASCII碼編碼方案中,一個英文字符占用一個字節,一個漢字字符占用兩個字節的空間;一個字符等于一個字節 。一個英文字母(不分大小寫)占一個字節的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數,換算為十進制。最小值-128,最大值127。如一個ASCII碼就是一個字節。

轉義字符:

以字符“\"開頭的字符序列。例如:在 printf 函數中的’\n'代表一個“換行”符。'\t'代表将輸出的位置跳到下ー個 Tab 位置(制表位置),一個 Tab 位置為列。這是一種在屏幕上無法顯示的“控制字符”,在程序中也無法用一個一般形式的字符表示,隻能采用這樣的特殊形式來表示。

轉義字符

轉義字符/字符值/輸出結果

\'/一個單撇号/輸出單撇号字符

\"/一個雙撇号/輸出雙撇号字符

\?/一個問号(?)/輸出問号字符?

\\ /一個反斜線/輸出反斜線字符

\a /警告( alert )/産生聲音或視覺信号

\b /退格( backspace )/将光标當前位置後退一個字符

\f /換頁( form feed )将光标當前位置移到下一頁的開頭

\n /換行 /将光标當前位置移到下一行的開頭

\r /回車( carriage return )/将光标當前位置移到本行的開頭

\t /水平制表符将光标當前位置移到下一個 Tab 位置

\v /垂直制表符/将光标當前位置移到下一個垂直制表對齊點

\o 、\oo或\ooo其中o代表一個八進制數字/與該八進制數字 ASCII 字符/與該八進制碼對應的字符

\xh [h…]其中h代表一個十六進制數字/與該十六進制碼對應的ASCIl 字符/與該十六進制碼對應的字符

轉義字符,意思是将“\”後面的字符轉換成另外的意義。如" n 中的" n "不代表子母 n 而作為"換行”符。

以八進制教表示的字符。例如\101代表八進制制數101的ASCii碼對應字符'A '(八進制數101相當于十進制數65.從附錄表可以看到ASCii碼(十進制數)為65的字符是大寫字母'A'。

101轉化8^2+1=65

65/8=8餘1,倒排進位,1為八進制個位

上式的商8/8=1餘0,0為八進制比上面高的一位,上式的商1/8=0餘1,1為八進制比上面高的一位,65的八進位數為101。上面的方法為除基取餘法,倒排餘數。

一個以十六進制數表示的 ASCIl字符,如'\x41’代表十六進制數41的 ASCIl 字符,4*16+1=65,也是' A '(十六進制數41相當于十進制數65)。

用轉義字符表中的方法可以表示任何可顯示的字母字符、數字字符、專用字符、圖形學符和控制子符。如’\033’或'\x1B'代表 ASCii代碼為27的字符,3x8+3=27,1x16+11=27,即 ESC 控制符。

十六進制英文名稱:Hex number system,是計算機中數據的一種表示方法。同我們日常中的十進制表示法不一樣。它由0-9,A-F組成。與10進制的對應關系是:0-9對應0-9,A-F對應10-15,N進制的數可以用0---(N-1)的數表示,超過9的用字母A-F。B在16進制中序數為11,1~9對應1~9,A~F對應10~15。

(4)字符串常量。如" boy ,"123"等,用雙撇号把若幹個字符括起來,字符串常量是雙撇号中的全部字符(但不包括雙撇号本身)。注意不能錯寫成 'CHINA' , 'boy ','123'。單撇号内隻能包含一個字符,雙撇号内可以包含一個字符串。從其字面形式上即可識别的常量稱為“字面常量”或“直接常量”。字面常量字符來是沒有名字的不變量。

(5)符号常量。用# define 指令,指定用一個符号名稱代表一個常量。

如# define PI 3.1416 //注意行末沒有分号

經過以上的指定後,從此行開始所有的 PI 都代表3.1416。在對程序進行編譯前,預處理器先對 PI 進行處理,把所有 PI 全部置換為3.1416。這種用一個符号名代表一個常量的,稱為符号常量。在預編譯後,符号常量已全部變成字面常量(3.1416)。

注意:要區分符号常量和變量,不要把符号常量誤認為變量。符号常量不占内存隻是一個臨時符号,代表一個值,在預編譯後這個符号就不存在了,故不能對符号常量賦值。為與變量名相區别,習慣上符号常量用大寫表示,如P1, PRI

2.變量

變量代表一個有名字的、具有特定屬性的一個存儲單元。它用來存放數據,也就是存放變量的值。在程序運行期間,變量的值是可以改變的。

變量必須先定義,後使用。在定義時指定該變量的名字和類型。如: int a =3;

變量值一個變量應該有一個名字,以便被引用。

請注意區分變量名(地址名)和變量值存儲單元(地址單元)這兩個不同的概念,如: a 是變量名,3是變量 a 的值,即存放在變量 a 的内存單元中的數據。變量名實際上是以一個名字代表的一個存儲地址。在對程序編譯連接時由編譯系統給每一個變量名分配對應的内存地址。從變量中取值,實際上是通過變量名找到相應的内存地址,從該存儲單中讀取數據。

3.常變量

常變量是在定義變量時,如果加上關鍵字const,則變量的值在程序運行期間不能改變,這種變量稱為常變量。如:const int a = 3;

在定義常變量時必須同時對它初始化,此後它的值不能再改變,常變量不能出現在賦值符号的左邊。

區别:常變量與符号常量的區别:符号常量不占用内存空間,在預編譯時就全部由符号常量的值替換了,而常變量占用内存空間,隻是此變量在存在期間不能重新賦值。

常變量與常量的異同是,常變量具有變量的基本屬性:有類型占存儲單元,隻是不允許改變其值。可以說,常變量是有名字的不變量,而常量是沒有名字的不變量。有名字就便于在程序中被引用。

常變量與符号常量不同。如:

# define Pi 3.1415926 //定義符号常量

const float pi =3.1415926; //定義常變量

符号常量 P 和常變量 pi 都代表3.1415926在程序中都能使用。但二者性質不同:定義符号常量用# define 指令,它是預編譯指令,它隻是用符号常量代表一個字符串,在預編譯時僅進行字符替換,在預編譯後,符号常量就不存在了(全置換成3.1415926),對符号常量的名字是不分配存儲單元的。而常變量要占用存儲單元,有變量值,隻是該值不改變而已、從使用的角度看,常變量具有符号常量的優點,而且使用更方便。有了常變量以後,不必多用符号常量。

在C語言中,可以用一個标識符來表示一個常量,稱之為符号常量。

符号常量在使用之前必須先定義,其一般形式為:#define 标識符 常量

其中#define 也是一條預處理命令(預處理命令都以"#"開頭),稱為宏定義命令,其功能是把該标識符定義為其後的常量值。一經定義,以後在程序中所有出現該标識符的地方均代之以該常量值。習慣上符号常量的标識符用大寫字母,變量标識符用小寫字母,以示區别。符号常量雖然有名字,但它不是變量。它的值在其作用域内是不能改變的,也不能被賦值。使用符号常量好處:1、含義清楚。2、在需要改變一個常量時能做到“一改全改”。

4.标識符

用來對變量、符号常量名、函數、數組、類型等命名的有效字符序列統稱為标識符,标識符就是一個對象的名字。變量名a,符号常量名 PI , PRICE ,函數名 printf 等都是标識符。

C 語言規定标識符隻能由字母、數字和下畫線3種字符組成,且第1個字符必須為字母或下畫線。下面列出的是合法的标識符,可以作為變量名:

SUM,_ total, Class,Student _ name , lotus _1_2,BASIC,li _ling。

下面是不合法的标識符和變量名:

M . D . John ,¥123,#33,3D64, a > b,大寫字母和小寫宇母是兩個不同的字符。如: sum 和 SUM 是兩個不同的變量名,一般而言,變量名用小寫字母表示。

數據類型

在定義變量時需要指定變量的類型。常量也是區分類型的。在計算機中,數據是存放在存儲單元中,它受字節數所限長度和存儲形式所限類型。存儲單元是由有限的字節構成的,每一個存儲單元存放數據的範圍是有限的,不可能存放“無窮大”的數,也不能存放循環小數。如用 C 程序計算和輸出1/3;printf (“% f” ,1.0/3.0);得到的結果是 0.333333,隻能得到6位小數,而不是無窮位的小數。所謂類型,就是對數據分配存儲單元的安排,包括存儲單元的長度(占多少字節)以及數據的存儲形式。不同的類型分配不同的長度和存儲形式。

c語言數據形式有哪幾種(C語言數據表現形式)1

c語言代碼

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved