<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > Linux C - C基礎篇(一)

Linux C - C基礎篇(一)

發(fā)布人:嵌入式Linux 時(shí)間:2023-01-11 來(lái)源:工程師 發(fā)布文章
基本數據類(lèi)型
  • char: 字符類(lèi)型,占1個(gè)字節,8bit位,取值范圍為 -128~127(-2^7~2^7-1)。

  • short: 短整形,2字節,16bit位。

  • int: 整形,4字節,32bit位。

  • long: 長(cháng)整形,4字節,32bit位。

  • float: 浮點(diǎn)型,4字節,32bit位。

  • double: 雙精度浮點(diǎn)型,8字節,64位

  • bool: true/false 使用時(shí)需包含頭文件<stdbool.h>。

進(jìn)制轉換之有符號的十進(jìn)制數用二進(jìn)制表示

1) 最高位是符號位,0表示正數,1表示負數。

2) 如果是正數,正常表示(即原碼),如果是負數,先求反碼,再求補碼(補碼為反碼加1)即為他的二進(jìn)制表示。例如char型的1,用二進(jìn)制表示為00000001;char型的-1用二進(jìn)制表示為11111111。

  • -1原碼:10000001

  • -1反碼:11111110 (求反碼符號位不變)

  • -1補碼:11111111

常量與變量

常量,就是在程序運行過(guò)程中值無(wú)法被改變;變量,就是在程序運行過(guò)程中內部存儲的值隨時(shí)可以被改變。變量是“可讀、可寫(xiě)”,而常量,是“只讀”的。

整形常量:12、浮點(diǎn)型常量:12.35、實(shí)數型常量:1.3e-5、字符型常量:'a'、字符串型常量:"abc"、標識符常量:#define LEN 10。

變量一般存放在內存中:棧區, 靜態(tài)數據區,全局變量區, 堆區。函數中定義的變量,如果不加特殊修飾,都是保存在棧區,函數調用結束,??臻g被自動(dòng)釋放。

定義變量:

<存儲類(lèi)型> <數據類(lèi)型> <變量名>

static/auto/... int/char a

例如:static int a;char c;

存儲類(lèi)型:

  • auto:自動(dòng)存儲類(lèi)型(一般都省略),申請的變量都保存在??臻g。

  • register:寄存器型變量,申請的變量保存在寄存器上。速度快,效率高,但不能對其進(jìn)行取地址操作。

  • static:靜態(tài)存儲類(lèi)型,申請的變量保存在靜態(tài)區,默認初始化為0,初始化語(yǔ)句只執行一次,生存周期為整個(gè)程序結束。目的:限制變量的作用域。

  • extern:外部引用,用于多文件編程。被引用的變量必須是在其他文件中定義過(guò)的。

  • const:只讀存儲類(lèi)型,相當于常數。

類(lèi)型轉換

自動(dòng)類(lèi)型轉換

將一種類(lèi)型的數據賦值給另外一種類(lèi)型的變量時(shí)就會(huì )發(fā)生自動(dòng)類(lèi)型轉換,例如:float a = 10;10是int類(lèi)型的數據,需要先轉換成float類(lèi)型然后再賦值給變量a。

在不同類(lèi)型的混合運算中,編譯器也會(huì )自動(dòng)地轉換數據類(lèi)型,將參與運算的所有數據先轉換為同一種類(lèi)型,然后再進(jìn)行計算。轉換的規則如下:

  • 轉換按數據長(cháng)度增加的方向進(jìn)行,以保證數值不失真,或者精度不降低。例如,int 和 long 參與運算時(shí),先把 int 類(lèi)型的數據轉成 long 類(lèi)型后再進(jìn)行運算。

  • 所有的浮點(diǎn)運算都是以雙精度進(jìn)行的,即使運算中只有 float 類(lèi)型,也要先轉換為 double 類(lèi)型,才能進(jìn)行運算。

  • char 和 short 參與運算時(shí),必須先轉換成 int 類(lèi)型。

強制類(lèi)型轉換

自動(dòng)類(lèi)型轉換是編譯器根據代碼自己判斷的,有時(shí)候我們需要手動(dòng)的進(jìn)行數據類(lèi)型轉換,稱(chēng)之為強制類(lèi)型轉換,例如:

(int)(a+b); //將a + b 求得結果的數據類(lèi)型強制轉換為int型。

運算符
  • 算術(shù)運算符: + - * / % ++ --

  • 關(guān)系運算符: 結果只有真或者假:> < == >= <= !=

  • 邏輯運算:&& || !

  • 位運算:& | ~ ^ << >>

  • 賦值運算 : = , +=

  • 條件運算符: 表達式1 ? 表達式2 : 表達式3;

  • 逗號運算:從左到右依次計算,最后一個(gè)表達式的值,作為整個(gè)表達式的值。

  • sizeof運算符:測試變量所占空間的大小。sizeof(類(lèi)型) 或者 sizeof(變量名)

運算符的優(yōu)先級

特殊運算符>單目運算符>雙目運算符>三目運算>賦值運算>逗號運算

以上是老韓關(guān)于Linux c基礎的總結,如有不足歡迎指點(diǎn);對Linux c或者Linux驅動(dòng)感興趣的朋友可以收藏關(guān)注,我會(huì )持續更新的,謝謝支持!


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: Linux C

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>