【C++】当函数的形参为数组时,函数对实参的修改有效,不用专门return来帮助我们修改实参

当函数的形参为引用或指针时,函数对实参的修改有效,不用专门return
当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。我们需要使用return来帮助我们修改实参。
而如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值,我们不需要return

#include <iostream>
using namespace std;

void a(int b[2]);
int main() {
	int c[2] = { 1,2 };
	
	for (size_t j = 0; j < 2; j++)
		{
			cout << c[j] << "  ";
		}
	cout << endl;
	
	a(c);
	for (size_t j = 0; j < 2; j++)
		{
			cout << c[j] << "  ";
		}
	cout << endl;
}

void a(int b[2]) {
	for (size_t j = 0; j < 2; j++) {
		b[j] = 0;
	}
}

在这里插入图片描述

#include <iostream>
using namespace std;
void a(int b[][2]);
int main(){
	int c[2][2] = {1,2,3,4};
	for (size_t i = 0; i < 2; i++)
	{
		for (size_t j = 0; j < 2; j++)
		{
			cout << c[i][j]<<"  ";
		}
		cout << endl;
	}
	a(c);
	for (size_t i = 0; i < 2; i++)
	{
		for (size_t j = 0; j < 2; j++)
		{
			cout << c[i][j] << "  ";
		}
		cout << endl;
	}
}

void a(int b[][2]) {
	for (size_t i = 0; i < 2; i++)
	{
		for (size_t j = 0; j < 2; j++)
		{
			b[i][j] = 0;
		}
	}
}

result

posted @ 2019-06-05 21:32  爱做梦的子浩  阅读(296)  评论(0编辑  收藏  举报