一、變數是什麼
其值在其作用域內可以改變的量稱為變數。每乙個變數有乙個名字,在記憶體中佔據一定的儲存空間。變數在使用前需要定義,每個變數都有自己的位址。
二、
區域性變數的作用域
(
1)主函式中定義的變數也只能在主函式中使用,不能在其他函式中使用。同時,主函式中也不能使用其他函式中定義的變數。因為主函式也是乙個函式,他與其他函式是平行關係。
(
2)形參變數是屬於被調函式的區域性變數,實參變數是屬於主調函式的進一步變數。
(
3)允許在不同的函式中使用相同的變數名,它們代表不同的物件,分配不同的單元,互不干擾,也不會發生混淆。
(
4)在符合語句中也可以定義變數,其作用域只在復合語句範圍內。
三、
常量是什麼
其值不會發生改變的量稱為常量,常量的值在其作用域內不會發生改變,也不能被賦值,在其出現時就被
當作乙個立即數來使用。也就是說,他只能被訪問、被讀,而不能被寫,被賦值。
四、宣告和定義的關係
在函式中,除了用
extern
宣告的以外,出現對變數的宣告都是定義,在函式中對其他函式的宣告不是函式的定義。
五、 const
的用法
const
是constant
的簡寫,只要乙個變數前面用
const
來修飾,就意味著該變數裡的資料可以被訪問,不能被修改。也就是說
const
意味著「唯讀」
readonly
;
規則:
const
離誰近,誰就不能被修改;
const
修飾乙個變數,一定要給這個變數初始化值,若不初始化,後面就無法初始化。
六、
volatile
的作用
volatile
是告知編譯器,它修飾的變數隨時都可能被改變,因此,編譯後的程式每次在使用該變數的值時,都會從變數的位址中讀取資料,而不是從暫存器中獲取。
七、
typedef
介紹
typedef為c
語言關鍵字,其作用是為一種資料型別定義乙個行名字。這裡的資料型別包括內部資料型別(如
int、
char
型)和自定義的書庫型別(如
struct
)。
在程式設計中使用
typedef
目的一般有兩個:乙個是給變數乙個易記的且意義明確的新名字,另乙個是簡化一些比複雜的型別宣告。
八、
列舉與#define
巨集的區別
(1)
#define
巨集常量是在預編譯階段進行簡單替換,列舉常量則是在編譯的時候確定其值。
(2)一般在編譯器裡,可以除錯列舉常量,但是不能除錯巨集常量。
(3)
列舉可以一次定義大量相關的常量,而
#define
巨集一次只能定義乙個。
九、列舉的概念
列舉是
c語言中的一種基本資料型別,並不是構造型別,它可以用於宣告一組常數。當乙個變數有幾個固定的可能取值時,可以將這個變數定義為列舉型別。比如,可以用乙個列舉型別的變數來表示季節,因為季節只有
4種可能的取值:春天、夏天、秋天、冬天。
十、聯合體
union
的基本特性——和
struct
的同與不同
union
,中文名「聯合體、共用體」,在某種程度上類似結構體
struct
的一種資料結構,共用體
(union)
和結構體
(struct)
同樣可以包含很多種資料型別和變數。
不過區別也挺明顯:
結構體
(struct)
中所有變數是「共存」的——優點是「有容乃大」,全面;缺點是
struct
記憶體空間的分配是粗放的,不管用不用,全分配。而聯合體
(union)
中是各變數是「互斥」的——缺點就是不夠「包容」;但優點是記憶體使用更為精細靈活,也節省了記憶體空間。
筆記整理1
說說對arraylist的理解 最常用的list實現類 內部是陣列實現的 允許對元素進行快速隨機訪問 缺點就是元素之間不能存在間隔 陣列大小不滿足時需要增加儲存能力,需要複製資料到新的儲存空間 當在中間增加元素時,需要批量的複製和移動,因此適合隨機查詢和遍歷,不適合插入和刪除。說說對vector的理...
LINUX筆記整理
uname a 檢視核心版本 ls al 顯示所有檔案的屬性 pwd 顯示當前路徑 cd 返回上一次目錄 cd 返回主目錄 cal 顯示日曆 cal 2006 bc 計算器具 man info 幫助手冊 locale 顯示當前字型 locale a 所有可用字型 etc sysconfig i18n...
C 筆記整理 1
include 標頭檔案,標準輸入輸出程式從編輯到執行過程 執行 再鏈結 linux庫 動態庫 靜態庫 typedef與 define的區別 typedef int ti define int td ti a,b,c 只有a為int 型別 td d,e,f a,b,c均為int 型別注意 defin...