C語言學習(三) 資料型別

2021-08-23 14:31:14 字數 4349 閱讀 1121

c語言資料型別

一、基本資料型別

基本資料型別及取值範圍

資料型別

型別說明

位元組數取值範圍

char(signed char)字元1

-128~127

short(short int)

短整型2

-32768~32767

int整型

4-2147438648~2147438647

long (long int)

長整型4

-2147438648~2147438647

long long (long long int)

8-9223372036854775808~9223372036854775807

unsigned char

無符號字元

10~255

unsigned short

無符號短整型

20~65535

unsigned int

無符號整型

40~4294967295

unsigned long

無符號長整型

40~4294967295

unsigned long long

80~18446744073709551615

float

單精度浮點型(實數)

4±3.4e38(精確到6位小數)

double

雙精度浮點型

8±1.7e308(精確到15位小數)

long double

長雙精度浮點型

12±1.19e4932(精確到18位小數)

不同編譯系統中的變數所佔的位元組不一定相同,用c語言提供的計算型別位元組數的運算子——sizeof()運算子可獲知某種資料型別在記憶體中所佔的位元組數。

#includeint main(void)

這個程式在windows系統中用code::blocks編譯得到的執行結果如下:

在計算機記憶體中,計算機處理的最小單元就是位(bit),8位構成1位元組。

簡單計算整型資料型別的取值範圍:

有符號整型:最小值:-2∧(8*(sizeof(型別))-1),最大值:2∧(8*(sizeof(型別))-1)-1

無符號整型:最小值:-2∧(8*(sizeof(型別))),最大值:2∧(8*(sizeof(型別)))-1

二、常量和變數

1、常量(constant)是在程式使用之前預先設定好的,在整個程式的執行中保持型別和值都不變的資料。按照型別劃分為:整形常量、實型常量、字元常量、字串常量、列舉常量。

(1)整型常量

①表現形式:

十進位制由數字0~9組成,數字前可以帶正負號。

八進位制由數字0開頭,後面跟0~7的數字序列組成。

十六進製制

由數字0加字母x(大小寫均可)開頭,後跟0~9,a~f(大小寫均可)的數字序列組成。

②長整型常量由常量值後跟l或l來表示,無符號整型常量由常量值後跟u或u來表示,無符號長整型常量由常量值後跟lu、lu、lu或lu來表示。

(2)實型常量(實數、浮點數)

①表現形式:

十進位制小數:.98等價於0.98,18.等價於18.0

指數形式:c語言中以e或e來表示10為底的指數。e的左邊是數值部分(有效數字),可以表示成整數或小數形式,不能省略;e的右邊指數部分必須是整數形式。

②實型常量隱含按雙精度型(double)處理,單精度實型常量由常量值後跟f或f來表示,長雙精度(long double)實型常量由常量值後跟l或l來表示

(3)字元常量

c語言中由單引號括起來的乙個字元,如'a'、'2'等

特殊形式的字元常量——轉義序列(escape sequence)

常用轉義序列 字元

含義字元

含義'\n'

換行(newline)

'\a'

響鈴報警(alert or bell)

'\r'

回車(但不換行)(carriage return)

'\"'

乙個雙引號(double quotation mark)

'\0'

空字元,通常用作字串結束標誌(null)

'\''

單引號(single quotation mark)

'\t'

水平製表(horizontal tabulation)

'\\'

乙個反斜線(backslash)

'\v'

垂直製表(vertical tabulation)

'\?'

問號(question mark)

'\b'

退格(backspace)

'\ddd'

1~3位八進位制ascii碼值所代表的字元

'\f'

走紙換頁(form feed)

'\xhh'

1~2位十六進製制ascii碼值所代表的字元

(4)字串常量

字元常量是由一對雙引號括起來的乙個字串行,如:"qwer","a","123"等等。

為便於c程式判斷字串是否結束,系統對每個用雙引號括起來的字串常量都新增乙個字串結束標誌——ascii碼值為0的空操作符'\0'。它不引起任何控制動作,也不顯示。

(5)巨集常量(符號常量)

巨集常量,也稱符號常量,是指用乙個識別符號號代表的乙個常量,這時該識別符號與此常量是等價的。

定義符號常量:

①使用巨集定義編譯指令#define,形式為:#define  識別符號 字面常量。

注意:#define語句不以分號結尾,如果在行末尾加分號,則會連同分號一起進行替換。巨集常量名一般採用大寫字母表示。

②使用關鍵字const,const是乙個修飾符,可用於任何變數宣告中。被宣告為const的變數在程式執行期間不能被修改,const常量只能在定義時賦初值,不能在程式中改變其值。如:const pi 3.1415926;

(6)列舉(enumeration)常量

列舉資料型別描述的是一組整型值的集合,可用關鍵字enum來定義這種型別。

如:enum weekday ;

名稱weekday跟在關鍵字enum後面,這個名稱被稱為列舉標記,列舉標記也可以省略不寫。包含在花括號內的識別符號均為整型常量,稱為列舉常量(或列舉器)。除非特別指定,否則這組常量的第乙個常量的值為0,第二個常量值為1,以後依次遞增1。

c語言允許在列舉型別定義時,明確地設定每乙個列舉常量的值,如:

enum response;
可以宣告response型別的乙個新變數,enum response answer;變數answer可被賦予no,yes,none這三種值的任何一種。也可直接初始化,enum response answer = yes;

也可以在定義列舉型別時,宣告該型別的變數並初始化變數:

enum weekdatoday,tomorrow;

enum weekday today=monday,tomorrow=tuesday;

列舉標記後面的變數表中的每個識別符號都代表乙個整型常數,這些識別符號只是乙個整型常數的名字,不是字串,因此它們可以用於使用整型常數值的任何場合,但不能將其作為字串直接輸入和輸出。

2、變數(variable)是在程式中可以改變、可以賦值的量。

(1)①在c語言中,變數必須遵循「先定義,後使用」的原則。變數定義語句的形式:(定義多個相同型別的變數時,它們之間需用逗號分隔)

型別關鍵字  變數名1,變數2,······;

②變數名是使用者定義的識別符號,用於標識記憶體中乙個具體的儲存單元,在這個儲存單元中存放的資料稱為變數的值。通常,定義但未賦初值的變數的值是隨機值(靜態變數和全域性變數除外)。

初始化:型別關鍵字 變數名1 = 常量1(,變數名2 = 常量2,···)

(2)變數名規則:

①可包含字母,數字和下劃線;

②第乙個字元不能是數字;

③字母大小寫有區別;

④關鍵字不能用作變數名。

(3)變數名風格:

①通常,變數名用小寫字母,常量名全部用大寫字母;

②使用有描述性、有意義的變數名;

③使用下劃線將變數名的單詞分開 ,如:interest_rate;

④駝峰表示法:將每個單詞的第乙個字母大寫,如:interestrate;

⑤在變數名中體現其型別,如:i_smart,一眼能看出是int型別的變數。

C語言學習 資料型別

題外話 工作了快一年時間了,感覺只是對mtk平台的開發流程熟悉了而已,而程式設計水平並沒有提高多少。於是乎決定實習的最後兩個月時間給自己充充點,同時溫習一下以前的知識。今天開始資料型別的學習。接下來的都是平時理解不是很深刻的知識點,一些很熟悉的就不涉及了。c語言的資料結構是以資料型別形式出現的。c的...

C語言學習 資料型別

在c語言中,資料型別可以分為以下幾種 型別描述 基本型別 c語言中的算術型別,包含整數型和浮點型 列舉型別 c語言中的算術型別,用來定義在程式中只能賦予其一定的離散整數值的變數。void型別 型別說明符,表示沒有可用的值 派生型別 指標型別 陣列型別 結構型別 公用體型別 函式型別 型別儲存空間 值...

C語言學習 資料型別

a1,a2 其值在其作用域內可以改變的量被稱為變數 變數有名字 一定的儲存空間 變數必須要定義,有位址 對應儲存空間的首位址 變數依據定義的型別分類,它的大小由型別決定。a3 變數所對應的儲存空間內存放的二進位制序列變數的值不會因變數型別改變而改變 當變數轉換為對應型別時,記憶體區域的二進位制序列以...