C++引用方式传参,传值方式传参(*、&)

C++引用方式传参,传值方式传参(*、&)和数组作为参数传递

1、引用方式传参

引用相当于是外部变量的别名,实际操作的就是该变量,即在函数内对该变量进行修改的话,在外部该变量也会相应被修改。

//外部变量的值也会被修改
void ChangeRef(int& ref){
    ref++;
    cout << "引用内修改后的值为:" << ref << endl;
}
2、传值方式传参

实际上是复制了一个外部变量的副本进入函数中,在函数内操作的为该副本,对该变量的修改并不会实际修改函数外的该变量。

//外部变量的值不会被修改
void ChangeNotRef(int ref){
    ref++;
    cout << "通过传值方式在函数内修改后的值为:" << ref << endl;
}
3、指针方式传参

如果传值方式传入的是指针,那么如果单纯修改指针,那么在跳出函数后,该指针指向不受影响,但是如果修改的是指针指向的值,那么外部指针所指向的内容会相应的修改。因为以指针为参数进行传值,也是在函数内部复制了一个指针的副本,因而在内部修改指针本身即修改其副本并不影响外部的指针,但是两个指针都是指向同一个内存空间的,因而如果在函数内部修改了指针指向的内容,外部指针指向的内容也就相应改变了。

//先将指针指向地址,然后修改了指针指向的地址
//退出函数后,指针指向的地址不变
int *ptr = &Ref;
void ChangePtr(int* ptr){
    ptr++; //修改地址
    cout << "函数内修改后的指针指向:" << ptr << endl;
}
//调用方式
ChangePtr(ptr);
//先将指针指向地址,然后修改了指针指向地址的内容
int *ptr = &Ref;
void ChangePtrVal(int* ptr){
    (*ptr)++; //修改值
    cout << "函数内修改后指针指向的值:" << *ptr << endl;
}
//调用方式
ChangePtrVal(ptr);
4、数组作为参数的传递

当数组作为参数传递到函数时,形参直接是数组的头地址(也就是数组下标为0的地址),实参直接用数组的名字,这样经过函数可以改变外部数组的值。

//可以改变外部数组的值
//声明方式
void BubbleSort(int R[], int n){
	*******
}
//调用方式
BubbleSort(R, n);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值