深入理解C First

2021-07-08 14:44:12 字數 1555 閱讀 8015

型別是對資料的抽象,我們程式中的作用的資料是必定屬於某一種資料型別,當資料型別相同的時候他們有相同的表示形式、儲存格式以及相關的操作.我們為了更加深刻的理解記憶體分配、記憶體儲存狀態、從而分析問題。

資料型別我們可以理解為建立變數的模子:固定記憶體大小的別名。

資料型別的作用: 編譯器會預算出變數而分配記憶體空間大小

我們可以使用sizeof這個關鍵字去獲取變數的資料型別佔據的資料型別的大小。請記住sizeof不是函式!!!

sizeof(char)

我們可以對資料型別取別名,我們可以利用typedef更改資料型別的名字

如果函式沒有返回值,我們可以將其宣告為void型別。

如果函式沒有引數, 應該宣告其引數為void型別

void getnum(void) ;

c語言中規定只有相同的資料型別的指標才可以相互賦值。int *p1 = null; int *p2 = p1;

void * 指標作為左值可以接收任意型別的指標

void  getage(void *)   這個時候呼叫getage 函式傳遞函式引數的時候可以是char * 、int * 、double * 、 float *、 struct xx *等這些資料型別。

void * 指標作為右值賦值給其他資料型別的指標我們需要強制型別轉換。char *pp = (char *)malloc(100);

變數:是指既能讀又可以寫的記憶體物件

常量:是指一定定義就不能修改的物件

變數是一段連續的記憶體空間的別名,我們使用變數名來使用記憶體分配的記憶體空間.

一段連續的記憶體是指根據我們定義變數時不同的資料型別,編譯器分配不同大小的記憶體空間。

int a = 10; 表示在記憶體的某乙個位置分配乙個4個位元組的記憶體塊,記憶體塊的名字叫做a, 記憶體塊的內容是10, 我們操作a就是對記憶體塊的資料進行修改。

直接操作

間接操作:因為我們在分配變數的時候必然放在記憶體的某一塊位置,這個位置就叫做變數的位址或者指標.我們可以根據變數的指標來修改記憶體。

引用: c語言不包括引用,c++中包含引用,我們在前面說過typede可以對資料型別進行更名, 引用可以對分配的記憶體塊進行重新命名。

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...