C 中動態陣列 陣列引數

2022-03-26 02:27:53 字數 893 閱讀 5345

一、c++中的動態陣列

寫程式的時候,我在想動態陣列怎麼寫,new int,方括號中可以寫常量嗎,真是鬱悶,一些基本的知識都不記得,還是多練練吧。

int *pia = new int[10]; // 陣列的維數可以是任意的複雜表示式。

delete pia;

動態分配陣列時,陣列元素為類型別呼叫預設建構函式,內建型別的不初始化。可以在陣列後面跟一對圓括號,對陣列元素做值初始化。

int *pia2 = new int[10] (); //陣列元素都設為0

使用陣列時,可以用*pia ,或下標 pia訪問陣列元素。

二、c++中陣列引數詳解

在c++中,陣列不是按值傳遞,而是傳遞第乙個元素(準確地說是第0個)的指標。 void func(int[10]);被編譯器視為: void func(int*);

陣列的長度與引數宣告無關。因此,下列三個宣告是等價的:

void func(int*);

void func(int);

void func(int[10]);

1、在被調函式內對引數陣列的改變將被應用到陣列實參上,函式可以通過把引數型別宣告為const來表明不希望改變陣列元素:  void func(const int a[10]);

2、陣列長度不是引數型別的一部分,通常習慣將陣列長度作為另乙個引數傳遞過去如:void func(int a, int length)

3、另外一種機制是將引數宣告為陣列的引用。當引數是乙個陣列型別的引用時,陣列長度成為引數和型別的一部分,編譯器檢查陣列實參的長度與在函式引數型別中指定的長度是否匹配。

void func(int (&arr)[10]); //這個版本的func將只接受10個int的陣列 int a[10]

C 中陣列引數詳解

在c 中,陣列永遠不會按值傳遞。它是傳遞第乙個元素 準確地說是第0個 的指標。例如,如下宣告 void putvalues int 10 被編譯器視為 void putvalues int 陣列的長度與引數宣告無關。因此,下列三個宣告是等價的 void putvalues int void putv...

C 中陣列引數傳遞

include 傳遞陣列引數的幾種方式 void printvalues const int a 10 void printvalues2 int a 10 控制邊界 方法1 void printvalues4 int start,int end void printvalues5 const in...

C 中陣列引數詳解

在c 中,陣列永遠不會按值傳遞。它是傳遞第乙個元素 準確地說是第0個 的指標。例如,如下宣告 void putvalues int 10 被編譯器視為 void putvalues int 陣列的長度與引數宣告無關。因此,下列三個宣告是等價的 void putvalues int void putv...