一些基本概念:
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記憶體管理單元進行統一對映,而這個管理單元是同頁表的方式進行對映的,這個頁表放在物理記...