2-變量類型_變量_內存分區

八進制 與 二進制
  • 一位八進制數 對應 三位二進制數
十六進制 與 二進制
  • 一位十六進制數 對應 四位二進制數
進制
  • 二進制 : 0b 或者 0B
  • 八進制 : 0 0123
  • 十六進制 :0x 或者 0X

數據類型:

short
  • 短整型 佔用 2個字節
int
  • 整型 佔用4個字節 16位系統下 , int 佔2個字節
long
  • 長整型 佔用4個字節(32) 8個字節(64位系統下)
bool
  • 佔用內存空間 : 1個字節
  • 取值範圍(值域) : true(1) , false(0)
  • 邏輯真 (非零) 假 (零值)
  • 注意添加頭文件: #include <stdbool.h>
char 型
  • 處理字符
  • 佔用內存空間 1個字節
  • 取值範圍(值域) : (signed) char 有符號數 ; -128 ~ +127
  • unsigned char 無符號數 ; 0 ~ 255
float
  • 單精度 佔用4個字節
double
  • 雙精度 佔用8個字節

* 浮點型 : 所有浮點型數據全部爲約值


有符號負數
  • -127
  • 原碼 : 1111 1111
  • 反碼 : 1000 0000
  • 補碼 : 1000 0001

* 在任意字符串的末尾會存在 字符串終止符 ‘\0’

變量

  • 存儲類型 數據類型 變量名
  • 全局變量 :定義的表達式不位於任意的函數體內部.
  • auto : 最常用最不常見.
    auto 修飾局部變量 , 如果局部變量前沒有出現存儲類型,
    則編譯器默認該變量的存儲類型爲auto .
  • register : 寄存器型 (修飾局部變量)
    提醒系統在執行程序時把該數據存放在寄存器中,
    縮短程序執行時間, 提高程序執行效率.
    如果在寄存器沒有多餘的存儲空間時, 會把該數據默認爲auto進行處理.
  • extern : 外部參照引用類型
    引用在同一個C語言工程中定義的全局變量 .
  • 變量的定義:分配存儲空間
  • 變量的聲明:不分配存儲空間.
  • static : 靜態存儲類型

  • 修飾局部變量 : 改變局部變量的存儲位置, 延長變量的生命週期到程序執行結束.
    變量的值爲上一次運算的結果值.

  • 修飾全局變量 :防止其他文件引用本文件定義的全局變量.
  • 修飾函數 : 防止其他文件引用本文件定義的函數.

內存分區

代碼區 :
靜態區 :
  • 全局變量 、 static修飾的局部變量 、常量
    .bss段(未初始化數據區) .data段(已初始化數據區) rodata 常量區
    如果數據未初始化, 默認值爲0 .
堆區 :
棧區 :
  • 局部變量 , 函數參數 .
    如果數據未初始化, 默認值爲隨機值.

* 有符號數與無符號數同時參與運算時, 有符號數默認轉換爲無符號數參與運算.


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

& :
  • 任意一位和 1相與, 結果值不變; 任意一位和 0相與, 結果值爲0
| :
  • 任意一位和 0相或, 結果值不變; 任意一位和 1相或, 結果值爲1
異或 :
  • 兩者相同爲0, 不同爲1 ;
左移 : <<
  • 左端捨棄, 右端補零
右移: >>
  • 邏輯右移: 右端捨棄, 左端補零
  • 算術右移: 右端捨棄, 左端補符號位.

sizeof函數 :

  • 作用: 計算已知數據類型佔用內存空間的字節數.
  • sizeof(類型名或者變量名);

發佈了38 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章