函式的引數傳遞位陣列時,如何傳遞

2021-08-19 22:46:30 字數 755 閱讀 8838

初學者剛學完陣列後,需要將陣列作為引數傳遞時,會直接將陣列作為引數傳遞,實際上
陣列作為形參傳遞時,是以指標傳遞的。

void print(int* a);

void print(int a);

//儘管形式不同,但是上面兩個函式是等價的,每個函式的唯一形參都是 int* 型別

void print(const

char *p)}}

<2>*使用標準庫規範(推薦使用) 傳遞指向陣列首元素和尾元素的指標

void print(const char *begin, const char *end)

cout << endl;

}

<3>顯式傳遞乙個表示陣列大小的形參 專門定義乙個表示陣列大小的形參

//這種方式,在初學時,踩過陣列越界的坑後,一般會使用這種方式寫

void print(const

char a, size_t size)

cout

<< endl;

}

驗證程式:

陣列作為函式引數傳遞

陣列有兩個特殊的性質。一是不能複製陣列 二是使用陣列名字時,陣列會自動轉化為指向其第乙個元素的指標。由於陣列不能複製,所以無法編寫使用陣列型別形參的函式,因為陣列會被自動轉化為指標。一 一維陣列 1.三種定義形式 void printvalues int void printvalues int v...

陣列作為函式引數傳遞

重點 在c中,陣列是不能作為引數進行傳遞的,但是可以通過傳遞指向陣列初始元素的指標,使得在函式內部運算元組成為可能。在函式這一側,可以通過array i 引用陣列的內容。why?本質上array i 不過是 array i 的語法糖。include void func int array,int s...

c 中如何給函式傳遞陣列引數

在c 中,如果要給乙個函式傳入乙個陣列,一般都是傳入兩個引數乙個陣列指標和乙個陣列大小 例 void print 1 int n,int datas std cout std endl 對這個函式,我們可以這樣使用它 const int n 3 int datas n print 1 n,datas...