當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 嵌入式學(xué)習(xí)筆記:c語言基本數(shù)據(jù)類型詳解
今天就來跟著學(xué)霸來學(xué)一下基本數(shù)據(jù)類型學(xué)習(xí)點(diǎn)
邏輯類型
true false
0代表假 非0為真
整數(shù)類型
unsigned 無符號(hào)
signed 有符號(hào) 最高位為符號(hào)位 0為正,1為負(fù)編譯器中默認(rèn)為有符號(hào)
原碼:符合人的邏輯思維的二進(jìn)制數(shù)據(jù),最高位為符號(hào)位
反碼:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼:符號(hào)位保持不變,其余位取反補(bǔ)碼:正數(shù)的補(bǔ)碼和原碼相同,負(fù)數(shù)的補(bǔ)碼在反碼的基礎(chǔ)上加1
計(jì)算機(jī)中數(shù)據(jù)以補(bǔ)碼的形式存放
char 1個(gè)字節(jié) 0~255 -128~127 數(shù)據(jù)越界:注意char的取值范圍 -128-> 10000000(二進(jìn)制)(臨界值)
char還可以當(dāng)做字符類型,其實(shí)本質(zhì)還是整型,用0~127代表了128個(gè)字符 short 2個(gè)字節(jié)
int 4個(gè)字節(jié) 16位機(jī)中占2個(gè)字節(jié)
long 4個(gè)字節(jié) 64位機(jī)中占8個(gè)字節(jié)
浮點(diǎn)類型
編譯器默認(rèn)保留小數(shù)點(diǎn)后六位
float 占4字節(jié) 精確到小數(shù)點(diǎn)后6位 有效位為6~7位
double 占8個(gè)字節(jié) 精確到小數(shù)點(diǎn)后16位 有效位為15~16位
浮點(diǎn)數(shù)在內(nèi)存中默認(rèn)保存小數(shù)點(diǎn)后六位(float 和 double類型都是)
浮點(diǎn)數(shù)在內(nèi)存中的保存形式為科學(xué)技術(shù)法且為近似保存,保存后輸出可能造成精度失
準(zhǔn)。
構(gòu)造類型
指針類型
void型
常量:在程序執(zhí)行過程中不會(huì)改變的數(shù)據(jù)
整型常量:10
浮點(diǎn)型常量:1.23
字符常量:‘a’‘0’
字符串常量: “farsight”
標(biāo)識(shí)常量:
define 可以替換一個(gè)常量或者表達(dá)式,甚至可以替換一句語句變量:在程序執(zhí)行過程中可以改變的量一般形式:數(shù)據(jù)類型 變量名;
初始化:在定義的同時(shí)進(jìn)行賦值
局部變量:函數(shù)內(nèi)部定義,作用域?yàn)樵摵瘮?shù)
全局變量:函數(shù)外定義,作用域?yàn)檎麄(gè)文件
存儲(chǔ)類型 數(shù)據(jù)類型 變量名;
auto:只能夠修飾局部變量,定義局部變量不寫存儲(chǔ)類型的話會(huì)默認(rèn)為auto register:修飾的變量會(huì)存放在寄存器中,加快程序的運(yùn)行效率 extern :外部聲明 修飾全局變量
static: 修飾全局變量:限制了全局變量的作用域,僅本文件可用,其他文件無法通過extern 的方式引用
修飾局部變量:局部變量的存儲(chǔ)位置會(huì)從棧區(qū)換為數(shù)據(jù)區(qū),作用域不變,生命周期延長(zhǎng),當(dāng)進(jìn)程結(jié)束后才會(huì)自動(dòng)釋放
1、只能夠初始化一次
2、運(yùn)算的結(jié)果會(huì)保留
修飾函數(shù):該函數(shù)僅本文件可用
(棧區(qū),堆區(qū),數(shù)據(jù)區(qū)的區(qū)別)
二、數(shù)據(jù)類型轉(zhuǎn)換
隱式轉(zhuǎn)換 (編譯器優(yōu)化的結(jié)果)
1、賦值轉(zhuǎn)換
可能會(huì)出現(xiàn)數(shù)據(jù)越界
當(dāng)高精度數(shù)據(jù)轉(zhuǎn)化為低精度數(shù)據(jù)類型時(shí),會(huì)出現(xiàn)精度丟失
2、算術(shù)運(yùn)算
當(dāng)一個(gè)低精度數(shù)據(jù)類型的數(shù)據(jù)和一個(gè)高精度數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行運(yùn)算,計(jì)算結(jié)果會(huì)
自動(dòng)轉(zhuǎn)化為高精度數(shù)據(jù)類型
char、short-->int-->long-->float-->double
3、當(dāng)有符號(hào)數(shù)據(jù)和無符號(hào)數(shù)據(jù)進(jìn)行運(yùn)算,會(huì)自動(dòng)轉(zhuǎn)化為無符號(hào)
強(qiáng)制轉(zhuǎn)換(人為強(qiáng)制轉(zhuǎn)換想達(dá)到某一個(gè)效果)