所謂的類型,就是對數據分配存儲單元的安排,包括存儲單元的長度以及數據的形式,不一樣的類型分配不一樣的長度和存儲的形式,C語言容許使用的數據類型以下圖:數組
接下來將對幾個類型作一個簡單的介紹:數據結構
1、基本數據類型之--整型(int)ide
(一)、系統中爲每個整型數據分配了4個字節的存儲空間,整型數有如下幾種類型:函數
(1)短整型(short int):類型名爲shotr int或者簡寫爲short, 系統爲分配了2個字節的存儲空間,變量值的範圍是-32768~32767,輸出時格式聲明爲:%d或者%i。spa
(2)長整型(long int):類型名爲long int或者簡寫爲long, 系統爲分配了4個字節的存儲空間,變量值的範圍是-2147483648~2147483647,輸出時格式聲明爲:%ld。指針
(3)雙長整型(long long int):類型名爲long long int或者簡寫爲long long, 系統爲分配了8個字節的存儲空間,變量值的範圍是-922337203654775808~922337203654775807,輸出時格式聲明爲:%lld。blog
(4)無符號基本整型(unsigned int):類型名爲unsigned int或者簡寫爲int, 系統爲分配了4個字節的存儲空間,變量值的範圍是0~4294967295,輸出時格式聲明爲:%u。內存
(5)有符號整型(signed int):類型名爲signed int或者簡寫爲int, 系統爲分配了4個字節的存儲空間,輸出時格式聲明爲:%d。get
在這裏有個地方須要注意一下:就是unsigned和signed,定義時,它們只會改變你的最高位,並不會修改數據類型的長度,二者的區別就是:決定最高位是否會被當爲符號位。it
(二)、整型變量的定義
能夠用下列語句定義整型變量:
(1)int a, b; 同時定義兩個變量a與b
(2)int a = 10; 在定義變量a的同時賦初值給a。
注意:int a ,int b;這種寫法是錯誤的,不能夠在一個語句中寫兩個定義類型。
2、基本數據類型之--浮點型(float)
(一)、浮點型又可分爲如下兩種類型的浮點數
(1)單精度浮點數(float):系統爲其分配了4個字節的存儲空間,共32位二進制數, 變量的範圍是 3.4x10-38E~3.4x10+38E,輸出時格式聲明爲:%f。
(2)雙精度浮點數(double):系統爲其分配了8個字節的存儲空間,共64位二進制數, 變量的範圍是 1.7x10-308E~1.7x10+308E,輸出時格式聲明爲:%f。
(二)、浮點型變量定義
能夠用下列語句定義浮點型變量:
(1)float a, f;
(2)double b;
3、基本數據類型之--字符型(char)
(一)、目前大多數系統採用ASCII字符集,各類字符集的基本集都包括了127個字符,其中就包括:
(1)字母:大小寫20個英文字母
(2)數字:0~9
(3)29個專門的符號:!」 # & ‘ () * + , - . / : ; < = > ? [ \ ] ^ _ { | } ~
(4)空格符:空格、水平製表符(tab)、垂直製表符、換行、換頁
(5)不能顯示的字符:空(null)字符('\0')、警告('\a')、退格('\b')、回車('\r')等等。
系統爲字符變量分配了1個字節的存儲空間,符號字符型數的取值範圍爲-128~127, 無符號字符型數到值範圍是0~255。
(二)、字符常數的表示
(1)符號表示的字符可直接用單引號括起來表示, eg:'a', '9', 'Z',也可用 該字符的ASCII碼值表示, 例如十進制數85表示大寫字母'U', 十六進制數0x5d表示 ']', 八進制數0102表示大寫字母'B';
(2)不能用符號表示的控制符, 只能用ASCII碼值來表示, 如十進制數10表示換行,六進制數0x0d表示回車, 八進制數033表示Esc。
(三)、字符類型定義
char a;表示定義一個字符變量
a = 'B';表示給字符變量賦值B這個字符
4、指針類型(*)
指針是一種特殊的數據類型, 在其它語言中通常沒有。指針是指向變量的地址, 實質上指針就是存貯單元的地址。根據所指的變量類型不一樣,能夠是整型指針 (int *)、浮點型指針(float *)、字符型指針(char *)、結構指針(struct *)和聯合指針(union *),因爲指針所涉及的知識較爲寬廣且知識較爲雜亂,將在以後的博文中,再進行更加詳細的介紹。
5、構造類型
構造類型中又可分爲四種類型:
(1)數組:數組是一組有序數據的集合,數組中個數據的排列是有必定的規律的,數組的下標就是表明着數據在數組中的序號;同時,用一個數組名和下標便可以惟一地確認數組中的元素,數組中的每個元素都屬於同一個數據類型,不能在數組中添加不一樣類型的數據。
定義數組:類型符 數組名[常量表達式](注意:在定義時,常量表達式只能是常量,不能包含變量)
eg:int str[6] = {3,5,6,7,7,8};
(2)結構體(struct):C語言容許用戶本身創建由不一樣類型數據組成的組合型的數據結構,就是結構體。
定義結構體時,首先須要先定義一個結構體的類型,以後根據定義的結構體類型再定義變量:
第一步:定義結構體類型:struct 結構體類型名{成員列表};
eg:struct Student{int age; char *name};定義個一個類型爲Student的結構體,結構體中包含兩個成員;
第二步:定義變量:struct 結構體類型名 變量名稱
eg:struct Student stu 定義了一個名爲stu的變量
第三步:給變量賦值:變量名.成員名
eg:stu.age = 19 ;給結構體中的age這個成員賦值
(3)共用體(union)
(4)枚舉(enum)
6、無值型(void)
無值型字節長度爲0, 主要有兩個用途: 一是明確地表示一個函數不返回任何 值; 一是產生一個同一類型指針(可根據須要動態分配給其內存)。 例如: void *buffer; /*buffer被定義爲無值型指針*/