1. 程式人生 > >C++中陣列作為形參時,實際傳的是指標

C++中陣列作為形參時,實際傳的是指標

傳陣列時,實際上是建立了臨時的指標變數,指向傳進去的那個陣列。在函式中改變形引數組(臨時指標變數)的指向是可以的,只不過這樣做不會改變原來的陣列

//例子說明陣列做形參時,實際上是用一個臨時指標變數做形參,指向傳進去的陣列首地址。實際的陣列是常指標,不能改變它的值。
#include<iostream>
using namespace std;
int f(int *a,int *b);
int main(){
	int a[3]={1,2,3};
	int b[3]={5,6,7};
	int c=f(a,b);
	
	cout<<c<<endl;
	cout<<a[1];
	//a=b;//加上這一句會報錯,因為陣列不能賦值
	return 0;
}
int f(int a[],int b[]){
	a=b;//這裡的a,b不是陣列,而是指標變數,所以可以賦值,而且改變a、b指標變數指向的單元並不會改變實參
	return a[1];
}