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];
}


猜你喜欢

转载自blog.csdn.net/X_And_Y/article/details/53782506