c primer閱讀筆記之陣列與指標

2021-07-10 02:11:07 字數 1224 閱讀 7785

陣列初始化方式

沒有顯示初始化

陣列的主要限制

int *pia = new

int[10]; //會分配空間但不進行值初始化

int *pia = new

int[10](); //會分配空間而且會進行值初始化

如果在堆中建立的陣列儲存了內建型別的const物件,則必須為這個陣列提供初始化

何時使用動態陣列?

當我們在編譯的時候,並不知道陣列的長度的時候,我們可以使用動態陣列。

int *pia = new

int[n]; //對於動態陣列,可以用非常量來作為陣列的長度,等在執行時候,再確定陣列長度即可

delete pia; //在使用完之後,要釋放陣列所占用的空間

++自增操作符

&取位址操作符

用一句話說,指標所儲存的值是其所指向物件的位址,即指標是對記憶體位址做操作的,其通過解引用符間接對所指物件做操作。我們要一直保持乙個信念就是指標儲存的是位址,而非變數值!因為指標儲存的是所關聯物件的位址,因此指標也是占用記憶體位置的,因此指標本身也是可用指標指向的記憶體物件,故也存在指向指標的指標

指標的初始化

void*指標

void*指標是不能用於操縱它所指向的物件的

指向const物件的指標(const int *cp)

如果指標指向const物件,則不允許用指標來改變其所致的const值,const int *cp中的const限定的是指標所指向的物件,而不是指標本身,當將乙個指標宣告為乙個指向const物件的指標的時候,該指標能夠改變所指向的物件,但是不能改變所指向物件的值(無論該物件是const物件還是非const物件)

const指標(int *const cp = &i)

int a = 10;

int b = 20;

int &s = a;

int *p = &a;

s = b; //在這裡我們可以觀察到a的值也變成了20,即對引用進行賦值的時候,並不是使得s指向了b,而是將b的值賦值給了a,也就是一旦給引用s初始化之後,其就只能指向該物件

p = &b; //這裡指標p將會指向b而不再指向a

C Primer閱讀筆記(一)

這段時間,新入職了一家公司做深度學習演算法實習生。實習快乙個月了。所在的部門主要使用c 和python。由於之前因為畏難,沒怎麼學c 如今,由於工作需要以及自己的職業發展需要,又重新開始學習c 目前,主要是通過看 c primer 第五版並做習題來學習c 本篇文章從c primer第ii部分標準庫開...

C Primer閱讀筆記(二)

io是乙個程式的常用操作。程式要與使用者互動,必須提供io功能。io庫提供了讀寫控制台資料流,讀寫檔案流,讀寫記憶體流的型別。io庫 頭檔案型別 iostream istraeam,wistream從流讀取資料 ostream,wostream向流寫入資料 iostream,wiostream讀寫流...

C PRIMER讀書筆記 之 陣列與指標

1.維數必須用值大於等於1的常量表示式定義。此常量表示式 只能包含整形字面值 列舉常量或者用常量表示式初始化的整形const物件。注意 非const變數以及要到執行階段才知道值得const變數不能用於定義陣列維數。例 const unsigned sz get size int test score...