《王道程式設計師求職寶典》第一章 陣列

2021-09-16 12:15:57 字數 2315 閱讀 8646

一些基本概念:

1.c++內建型別:

分為基本型別和復合型別。基本型別包括整數、浮點數及兩者的多種變體。復合型別包括陣列、字串、指標、引用、結構體和共用體等

2.記憶體分割槽

1)堆:由程式設計師手動分配和釋放,完全不同於資料結構中的堆,分配方式類似鍊錶。由malloc或者new來分配,free和delete來釋放。若程式設計師不釋放,程式結束時由系統釋放

2)棧:由編譯器自動分配和釋放的,存放函式的引數值、區域性變數的值等。操作方式類似資料結構中的棧

3)全域性(靜態)儲存區:

4)文字常量區:

5)**區

1.int& a[10];//錯誤,沒有引用陣列,但是陣列有引用

定義陣列的引用:

int a[6] = ;

int (&p)[6] = a;

此時,p是陣列a的引用。陣列的引用可以用於函式實參傳遞。

2.陣列的初始化:沒有顯式初始化的索引,會自動初始化

#include using namespace std;

int main()

; int b[4];

cout << a[2] << " " << b[2] << endl;

return 0;

}

3.陣列的動態宣告和釋放

int *a = new int[n];

delete a;

4.c風格字串和字元陣列

c風格字串末尾是'\0'

5.二維陣列

//1

int a[3][4] = ,,};

//2int a[3][4] = ;

int a[3][4] = ,};

c++中,在宣告和初始化乙個二維陣列時,如果對二維陣列的所有元素都賦值,則第一維可以省略

6.二維陣列的動態宣告

int **a = new int*[m];

for(int i = o; i < m; i++)

a[i] = new int[n];

//釋放

for(int i = 0; i < m; ++i)

delete a[i];

delete a;

7.指標陣列與陣列指標

int *a[10];//建立乙個有十個整型指標的陣列
陣列指標,其實就是乙個指向陣列的指標

int (*p)[10];//定義了乙個指向有十個元素整型陣列的指標
二維陣列的陣列名是乙個陣列指標

int a[4][10];

int (*p)[10];

p = a;//a的型別是int(*)[10]

上面**中,雖然p和q都是指向同乙個元素,但是p和q的型別不同。

8.指標在高維陣列中的應用

一些考題:

}

strlen(a)  這個值是不確定的,strlen函式需要確保以null結束

注意逗號表示式

關於逗號表示式:

int main()

等等。

王道程式設計師求職寶典筆記

1 字串常量 以雙引號括起來的字串行是字串常量,便宜一起自動在末尾新增乙個空字元 例 字元常量 a 表示單個字元a,然而 a 是字串常量,表示字母a和空字元 null 兩個字元 2 末尾新增了 0 的字元陣列 char ca1 末尾沒有null字元 長度為3 char ca2 末尾顯示地新增null...

第一章 程式設計師也是人

程式設計師也是人 哪個狗日的發明了計算機?自打計算機問世以來,尤其是個人計算機的普及以後,一種新興的行業產生了,程式設計師。它伴隨著所謂第三次產業革命,資訊產業革命,而產生。所以他總是被掛上了高薪,高科技的帽子,使得它越來越受到了更多年輕人的青睞。然而,從大學起盲目的選擇到現在,你是否已經後悔?目前...

程式設計師的自我修養(第一章)

記憶體不夠怎麼辦?首先實現的是分頁機制,即只在物理記憶體中儲存程序常用的資料,而其他的放在硬碟中。關於隔離 程序作為普通的執行程式,需要的是簡單的執行環境和單一的位址空間。這裡就出現了虛擬位址空間,然後統一由mmu記憶體管理單元進行統一對映,而這個管理單元是同頁表的方式進行對映的,這個頁表放在物理記...