C語言是普適性最強的一種計算機程序編輯語言,它不只能夠發揮出高級編程語言的功用,還具備彙編語言的優勢,所以相對於其它編程語言,它具備本身獨特的特色。爲了更好地適應零基礎的小夥伴學習C語言,小編打算從C語言基礎、C語言進階、C語言精通三個大的階段開始作一些簡單介紹,但願藉此能增進你們對C語言的瞭解,提高學習效率,減小編程出錯。java
今天小編就開始從C語言的基本數據類型開始介紹。編程
整數類型:數組
短整型(short,2B,-32768 - +32767)編程語言
整型(int,4B,-21.47億 - +21.47億)函數
長整型(long,4B,在32位操做系統上表數範圍和int同樣),後面加L或l。學習
//sizeof()運算符能夠求一個變量,類型,常量等所佔的存儲空間。會執行括號中的計算,可是不會有結果。(也能夠理解爲沒有執行)編碼
有符型,爲了區分正負,將第一位做爲符號位,0表示正,1表示負。無符號類型(unsigned)表數範圍的絕對值擴大兩倍,只能表示非負整數,好比unsigned short表數範圍爲0-65535。操作系統
浮點類型:3d
單精度浮點型(float,4B,(-10^38 - -10^-38)和(10^-38 - 10^38))指針
雙精度浮點型(double,8B,(-10^308 - -10^-308)和(10^-308 - 10^308))
存儲:float最高位爲符號位,接下來8位爲指數位,最後23位爲尾數位。後面加f或F。
字符數據類型
字符型(char,1B,-128 - +127),無符號字符型(unsigned char,1B,0 - 255)
標識符,關鍵字,空白符(空格符、製表符、換行符)都屬於字符型。
用ASCII編碼方案編碼後儲存,0-255個(有的系統會擴展)。
標識符(變量名,函數名,數組名,文件名,類型名)由字母、數字、下劃線組成,數字不能開頭。區分大小寫。
關鍵字(Key Word):具備特俗意義的標識符,不能用於它用。
保留字(Reserved Word):系統暫時不使用,將來可能會使用的標識符,好比java中的goto。
特殊數據類型
空類型(void,不肯定的數據類型,一般做爲類型佔位符)
原子類型和構造類型
原子類型:基本類型、指針類型、空類型。不可再分割。
構造類型:數組類型、結構體類型、共用體(結合體)類型。由基本類型構造而成。
short、int、long、char、float、double 這六個關鍵字表明C 語言裏的六種基本數據類型。
2、內容
一、整型
整形分爲整形常量和整形變量,常量就是咱們平時所看到的準確的數字,例如:一、20、33三、、、等等,變量則按個人理解是我像內存去申請一個存儲空間,告訴內存空間我申請了這個地方用來存放一個整形的數據,可是何時放並無直接肯定。通常佔4個字節(32位),最高位表明符號,0表示正數,1表示負數,取值範圍是-2147483648~2147483647,在內存中的存儲順序是地位在前、高位在後,例如0x12345678在內存中的存儲以下。
定義:用int關鍵字,舉例以下:
在C語言中基本的整形變量標識符是int,在32位機器中一個int型數據使用32位也就是4個字節進行存儲。
二、浮點型
除了整形還有另外一類很重要的基本數據類型,那就是實型。咱們在學習數學時不只使用整數,更多的時候則是使用小數,那麼浮點數在內存中飯的存儲與整數在內存中的存儲有什麼不同的地方嗎?其實,單從數據存儲上看,都是2進制並無任何不一樣,但不一樣的是咱們加在其上的表示規則與讀取規則。不管單精度仍是雙精度的浮點數在內存中咱們對於一個浮點數都分爲三個部分:
一、符號位:0表明正 1表明負;
二、指數位:用於存儲科學技術法中的指數;
三、尾數位:存儲尾數部分
2.1 單精度
float:系統的基本浮點類型。至少能精確表示6位有效數字。
咱們在C語言中使用一個float類型表示一個單精度的浮點類型,一個float類型佔用4個字節的存儲位,其中最高位爲符號位,緊接着8位爲指數位,剩下的23位爲尾數位,咱們使用%f做爲其格式說明符,並且float通常精確到小數位後6位,即保證6位有效。
2.2 雙精度
double:範圍(可能)更大的浮點類型。能表示比float類型更多的有效數字以及更大的指數。
long double:範圍(可能)更大的浮點類型。能表示比double類型更多的有效數字以及更大的指數。咱們在C語言中使用一個double類型表示一個雙精度的浮點類型,一個double類型佔用8個字節的存儲位, 最高位爲符號位,緊接着8位爲指數位,剩下的52位爲尾數位,咱們使用%lf做爲其格式說明符,並且double類型通常精確到小數位後12位,即保證12位有效。
三、字符型
字符型在其本質上就是整形,咱們在C語言中使用char表示一個字符型,他佔用一個字符的存儲空間,字符型在存儲時其內部存儲的依舊是二進制數據,當咱們讀出時將會獲得一個整形數據,而咱們輸出時會獲得一個字符是由於咱們人爲的定義了一個對照表,這個表規定字符a的數值就是97,因此當咱們遇到97時咱們有兩種讀出方式,第一種以整數形式讀出就是97,另外一種就是以字符型讀出,使用%c指定讀出形式,則對照表則爲a。
四、指針
指針?什麼是指針?從根本上看,指針是一個值爲內存地址的變量(或數據對象)。正如char類型變量的值是字符,int類型的變量的值是整數,指針變量的值地址。在C語言中,指針有許多用法。假設一個指針變量名是ptr,能夠編寫以下語句:
對於這條語句,咱們就能夠說ptr「指向」pooh。ptr和&pooh的區別是ptr是變量,而&pooh是常量。或者,ptr是可修改的左值,而&pooh是右值。還能夠把ptr指向別處:ptr = &bah; //把ptr指向bah,而不是pooh。如今ptr的值是bah的地址。要建立指針變量,先要聲明指針變量的類型。
五、 數組
數組是按照順序存儲的一系列類型相同的值,如10個char類型的字符或15個int類型的值。整個數組有一個數組名,經過整數下標訪問數組中單獨的項或元素。例如:如下聲明:
float debts[20];聲明debts是一個內容20個元素的數組,每一個元素均可以存儲float類型的值。數組的第一個元素是debts[0],第2個元素是debts[1],以此類推,直到debts[19]。注意,數組元素的編號從0開始,不是從1開始。能夠給每一個元素賦float類型的值。例如,能夠這樣寫:debts[5] = 32.54;debts[6] = 1.2e + 21;實際上,使用數組元素和使用同類型的變量同樣。例如,能夠這樣把值讀入指定的元素中:
scanf("%f",&debts[4]);//把一個值讀入數組的第5個元素這裏要注意一個潛在的陷阱:考慮到影響執行的速度,C編譯器不會檢查數組的下標是否正確。下面的代碼,其實都不正確:debts[20] = 88.32;//該數組元素不存在!debts[33] = 828.12;//該數組元素不存在!編譯器不會查找這樣的錯誤。當運行程序時,這會致使數據被放置在已被其餘數據佔用的地方,可能會破壞程序的結果甚至致使程序異常中斷。
6 、複數和虛數類型(由於用的很少,因此這裏幾乎省略)
注意: char類型確定是1字節,由於C把char類型的長度定義爲1個字節。因此在char類型長爲16位,double類型長爲64位的系統中,sizeof將報告double類型有4字節長。
好了,簡單的數據類型介紹咱們就到這裏了,但願能幫助你們理解、入門。筆記只是輔助,更多的仍是須要你們跟着小編一塊兒學習,互動交流。最後預祝小夥伴們學業有成!