嵌入式學習筆記:c語言基本(ben)數據類型詳解
時間:2018-09-04 來源:未知(zhi)
今天就來(lai)(lai)跟著(zhu)學(xue)霸來(lai)(lai)學(xue)一下基本數據類(lei)型學(xue)習點
邏輯類型
true false
0代表假 非0為真
整數類型
unsigned 無符(fu)號
signed 有符號 最高(gao)位(wei)為符號位(wei) 0為正(zheng),1為負(fu)編譯器(qi)中默認為有符號
原碼:符(fu)合人的邏輯(ji)思維(wei)的二(er)進制數據,最(zui)高位為符(fu)號位
反(fan)碼(ma):正數(shu)(shu)的(de)(de)反(fan)碼(ma)與原(yuan)碼(ma)相(xiang)同(tong),負數(shu)(shu)的(de)(de)反(fan)碼(ma):符號(hao)位保(bao)持(chi)不(bu)變,其(qi)余位取反(fan)補碼(ma):正數(shu)(shu)的(de)(de)補碼(ma)和(he)原(yuan)碼(ma)相(xiang)同(tong),負數(shu)(shu)的(de)(de)補碼(ma)在反(fan)碼(ma)的(de)(de)基礎上加1
計算機(ji)中數據(ju)以補碼的(de)形式存放
char 1個字(zi)節 0~255 -128~127 數據越界:注意(yi)char的取值范圍 -128-> 10000000(二進制)(臨界值)
char還(huan)(huan)可以當做字符類(lei)型,其(qi)實(shi)本(ben)質還(huan)(huan)是整型,用0~127代表了128個字符 short 2個字節
int 4個字節 16位機中占2個字節
long 4個字節 64位(wei)機(ji)中(zhong)占(zhan)8個字節
浮點類型
編譯器默認保留小數點后六位
float 占4字節 精確(que)到小數點(dian)后6位(wei) 有效位(wei)為6~7位(wei)
double 占8個字(zi)節 精確到小數點后16位(wei) 有效位(wei)為15~16位(wei)
浮點數在(zai)內(nei)存中默認保(bao)存小數點后(hou)六位(float 和 double類型都是)
浮點數在(zai)內(nei)存(cun)中的保(bao)存(cun)形(xing)式為科學技術(shu)法且為近似保(bao)存(cun),保(bao)存(cun)后輸出可能(neng)造成精度失
準。
構造類型
指針類型
void型
常量:在程序執(zhi)行過程中不會改變(bian)的數據
整型(xing)常量:10
浮點型常量:1.23
字符常量:‘a’‘0’
字符串常量: “farsight”
標識常量:
define 可(ke)以替(ti)換一(yi)個常量(liang)或者表(biao)達式,甚(shen)至可(ke)以替(ti)換一(yi)句(ju)語(yu)句(ju)變量(liang):在程(cheng)序執行過程(cheng)中可(ke)以改變的量(liang)一(yi)般形式:數據類型(xing) 變量(liang)名(ming);
初(chu)始化:在定義的(de)同時進行賦值
局部變量(liang):函數(shu)內部定義,作用域(yu)為該函數(shu)
全局變量:函數外定義,作用域(yu)為整(zheng)個(ge)文件(jian)
存儲類(lei)型 數(shu)據類(lei)型 變量名;
auto:只能夠(gou)修(xiu)飾(shi)局(ju)(ju)部(bu)(bu)變(bian)量(liang),定義局(ju)(ju)部(bu)(bu)變(bian)量(liang)不(bu)寫存(cun)儲類型的(de)話會默認為auto register:修(xiu)飾(shi)的(de)變(bian)量(liang)會存(cun)放在寄存(cun)器中,加快程序的(de)運行效率 extern :外部(bu)(bu)聲明 修(xiu)飾(shi)全局(ju)(ju)變(bian)量(liang)
static: 修飾全局變(bian)量(liang):限制了全局變(bian)量(liang)的作用(yong)域,僅本文件(jian)可(ke)用(yong),其他文件(jian)無法通過extern 的方(fang)式引(yin)用(yong)
修飾局(ju)部(bu)變量(liang):局(ju)部(bu)變量(liang)的存儲位置(zhi)會從(cong)棧區換(huan)為數據區,作用域(yu)不變,生命周(zhou)期延長,當進程(cheng)結束后才會自動釋(shi)放
1、只能夠初始化一(yi)次(ci)
2、運算的結果會保留
修飾函數:該函數僅本(ben)文件可用
(棧區(qu),堆(dui)區(qu),數據區(qu)的區(qu)別)
二、數據類(lei)型轉換(huan)
隱(yin)式轉換 (編譯器(qi)優化(hua)的結果)
1、賦值(zhi)轉換
可能會出現數據越界(jie)
當高精度數據(ju)(ju)轉化(hua)為(wei)低精度數據(ju)(ju)類(lei)型時(shi),會出(chu)現(xian)精度丟(diu)失
2、算術運算
當一(yi)個低精度數(shu)據(ju)類(lei)型的數(shu)據(ju)和一(yi)個高精度數(shu)據(ju)類(lei)型的數(shu)據(ju)進行運(yun)算,計算結果(guo)會
自動(dong)轉化為高精度數據類型(xing)
char、short-->int-->long-->float-->double
3、當有符(fu)號數(shu)據(ju)和無(wu)符(fu)號數(shu)據(ju)進行運算,會自動(dong)轉化(hua)為無(wu)符(fu)號
強(qiang)制轉換(huan)(人為強(qiang)制轉換(huan)想達到某一(yi)個效果(guo))