C++函数参数传递三种方式

C++函数参数传递三种方式

值传递

特点:

函数调用时将实参的值复制给形参,形参做任何改变不影响实参的值

void swap(int a, int b)
{
	int tmp = a;
	a = b;
	b = tmp;
}

int main()
{
	int x = 20;
	int y = 10;
	swap(x, y);      //值传递 所以x,y的值不能交换
	
    return 0;
}

引用传递

引用可以说是给变量起别名,引用做形参相当于直接访问实参。

void swap(int &a, int &b)
{
	int tmp = a;
	a = b;
	b = tmp;
}

int main()
{
	int x = 20;
	int y = 10;
	swap(x, y);      //引用传递参数 所以x,y的值可以交换
    
    return 0;
}

指针传递

实参和形参指向同一片内存。形参改变,实参的值同样改变

#include <iostream>
using namespace std;

void swap(int *a, int *b)
{
	int tmp = *a;
	*a = *b;
	*b = tmp;
}

int main()
{
	int x = 20;
	int y = 10;
	swap(&x, &y);      //指针传递参数 所以x,y的值交换
	
    printf("x = %d,y = %d\r\n", x, y);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36413982/article/details/105303572