C語言資料型別規則
一、基本資料型別1. 基本資料型別的分類:
C語言中的三種基本資料型別是:整型 、實型 、字元型 。每種型別又可以分為常量和變數。
整型常量:(1) 十進位制的整型常量:由數字0~9組成。如:0、10、365、-12等。
(2)八進位制的整型常量:以0開頭,由數字0~7組成。如:0、010、0365、-012、011等。
(3)十六進位制的整型常量:以0x或0X開頭,由數字0~9、a~z或A~Z組成。如:0x11、0Xffff、0xa5、-0XAC等。
注: C語言系統預設為基本整型常量 。(關於“基本整型”,請參考下面的內容)
整型變數:(1) 根據整數的最高位是否用作符號位,分為有符號(signed)整型和無符號(unsigned)整型。
(2)根據整數在計算機記憶體中所佔用的空間大小,分為短整型(short int或short)、基本整型(int)和長整型(long int或long)。
short x = 10等價於 signed short x = 10 同時等價於signed short int x = 10
int age = 20 等價於signed int age = 20
long z = 10000L (加L後說明10000是一個長整型常量,而不是一個基本整型常量)
注:(1) C語言系統預設為有符號 整數。
(2) unsigned和signed不能同時出現。
(3) short和long不能同時出現。
實型常量:在C語言中,實型常量的兩種表現形式:小數形式和指數形式。或者叫做小數點式和字母E(或e)式。
(1)小數點式:
1、有且僅有一個小數點
2、小數點的左邊和右邊可以有一邊沒有資料,但不能同時沒有資料
舉例:3.14、0.1、10.、0.0、.0、-10.08
(2) 字母E(或e)式:
1、有且僅有一個字母E(或e)
2、 兩邊都必須有資料
3、左邊可以是整數,也可以是小數
4、右邊只能是整數
舉例:1e5、1.2E+4、3.0e-2、0e0、1.e0、.0e0
實型變數:分為單精度和雙精度兩種,單精度用float表示,雙精度用double表示。字元型常量:字元型常量的兩種表現形式:
(1)由一對單引號括起來的單個字元:
#include
void main()
{undefined
//這裡只能把字元'c'接收進去,注意編譯時候的警告 ,這個應該和具體的機器有關
//x86是小端儲存的,ppc是大端的
//ppc中應該是把a接收進去
char c = 'abc'
printf("%cn" ,c)
}
(2) 由一對單引號括起來的,裡面是由反斜槓“”引起的若干字元:
1、一般轉義字元,如:'nƈ. "”與其後的1~3位 八進位制陣列成的八進位制轉義字元,如:飓'、''、ཹ'、颽'
3、 "x”與其後的1~2位 十六進位制陣列成的十六進位制轉義字元,如:'x41'、'x61'、'x7F'。注意: 不能是大寫的“X”。
字元型變數:注:字元變數中存放的實際上是該字元的ASCII碼,因為字元型資料都被處理成整型資料。
2、 舉例與注意事項:(1) unsigned:為無符號型別,只能表示大於或等於0的數。
signed:為帶符號型別,可以表示正數、負數和0。
(2) 32位機上,int與long的字長相同,均為4位元組。
(3)以下程式的輸出結果是多少
#include
void main()
{undefined
unsigned short x = 100000 //這條語句在編譯的時候會有警告,大整數被隱式轉換成無符號型別
unsigned int y = 100000
int m = 034
printf("hex :%x %xndec:%d %d %dn" ,x ,y ,x ,y,m)
}
結果:
hex : 86a0 186A0
dec: 34464 100000
註解 :unsigned short佔兩個位元組,編譯器對二進位制表示擷取低16位,相當於對65536求餘(%),得34464 。
(4) 解釋以下字面值常量:
'a':char型字面值 L'a':wchar_t型字面值
"a":字串字面值 L"a":寬字串字面值
10:int型字面值 10L:long型字面值
10u:unsigned型字面值 10uL:unsigned long型字面值
012:八進位制表示的int型字面值 0xC:十六進位制表示的int型字面值
3、14:為double型字面值 3.14f:為float型字面值
3、14L:為long double型字面值
-10.:為double型字面值 -10e-2:為double型字面值
-10u:unsigned int型字面值 -10:int型字面值
非法常量:3.14UL、1024f
二、識別符號
1、 識別符號的規則和分類
(1) 識別符號的命名規則:
1)只能由字母、數字和下劃線組成 2)第一個字元不能是數字 3)區分大小寫,如:int與Int是兩個不同的識別符號。 4)儘量做到見名知義,如:int age = 10 (2) 分類: 1)關鍵字。如:int、float、double、auto等。 2)預定義識別符號。包括函式名和預處理命令名。如:printf、scanf、main、sin、include、define等。 3)使用者識別符號。不能使用關鍵字,可以使用預定義識別符號。如:int printf = 0 int weight = 68等。
C語言資料型別轉換基本規則
程式語句和表示式通常應該只使用一種型別的變數和常量,但是如果混合使用型別
C使用一個規則集合來完成資料型別的自動轉換。
以下是一些C資料型別轉換的基本規則:
1.當出現在表示式中時,有符號和無符號的char和short型別都將自動轉換為int。
2.在包含兩種資料型別的任何運算中,較低級別型別將會轉為運算中另一個較高級別的資料型別。
3.資料型別級別從高到低的順序是long double、double、float、usigned long long、long long unsigned long、long、 unsigned int、int一個可能的例外是當long和int具有相同大小時,unsigned int級別高於long,short和char由規則1被提升到int。
4.在賦值語句中,計算結果將被轉換為要被賦值的那個變數的型別,這個過程可能導致級別提升(被賦值的型別級別高)或者降級(被賦值的型別級別低),提升通常是一個平滑無損的過程,然而降級可能導致真正的問題。
5.作為函式的引數被傳遞時,char和short會被轉為int,float轉為double,但可以通過函式原型的指定阻止自動提升的發生
-
黎明的經典歌曲有哪些
sugarinthemarmalade真的愛情定可到未來一夜傾情我的另一半 你令愛了不起 讓愛隨你走 愛比我重要對不起, 我愛你  我的真心獻給你第十《我這樣愛你》是韓劇《我心蕩漾》的主題曲第九《我的親愛》原唱是日本歌手槇原敬之,日文版叫《已不...
-
九牧流芳是何意
1、“九牧流芳”意思是傳承下去,九牧世家代表一個家族。“九牧世家”源於唐代,原屬晉安林氏一支。因當時林祿後代林披生有九子,分別擔任九州島刺史(又稱州牧),家世顯赫,形成望族,後人稱他們為“九牧林”。2、“九牧流芳”是唐九牧,莆田的九牧林,一家九口中進士。九牧傳芳...
-
菜刀怎麼磨刀最快最好
1、準備好磨刀石,先將粗糙的一面朝上2、然後放上溼抹布,將磨刀石沖水,放在溼抹布上面3、然後兩手夾住菜刀兩面,從左到右開始上下摩擦,然後將到對調後,,繼續按照上下摩擦方式摩擦1分鐘4、再將磨刀石細的一面,反過來朝上,按照上一步拿刀方法,進行摩擦5、將刀磨好了之後,用清...
-
京東快遞為什麼五六天不動
我們在網路上進行了網購,就會有相應的快遞公司承擔快遞運送業務。如果我們在京東上購買了物品,京東快遞五六天沒有什麼快遞運送訊息。首先現在最常見的就是由於疫情的原因會導致快遞延遲傳送,還有各種極端災害天氣,比如洪水等情況也會導致快遞傳送延遲。如果發現京...