数值传递,地址传递,引用。

 

 

 

 

c++兼容指针

#include"iostream"
using namespace std; 
//默认值传递,不会改变原始数据,不会交换  
void swap1(int a,int b)
{
    int t;
    t=a;
    a=b;
    b=t;
    
}
//通过指针直接对原始数据修改 
void swap2(int *p,int*q)
{
    int t;
    t=*p;
    *p=*q;
    *q=t; 
}
//通过引用直接对原始数据修改,相当于起了别名。a的别名x,b的别名y. 
void swap3(int& x,int& y)
{
    int t;
    t=x;
    x=y;
    y=t;
 } 

int main()
{   
    int a=3;
    int b=4;
    swap1(a,b);
    cout<<a<<" "<<b<<endl;;
    a=3,b=4;
    swap2(&a,&b);
    cout<<a<<" "<<b<<endl;;
    a=3,b=4;
    swap3(a,b);//相当于起了别名。a的别名x,b的别名y.直接对a,b原始数据操作
    cout<<a<<" "<<b<<endl;;
 } 

加了引用和不加引用,写法的区别在函数声明,但内部实现和不加引用相同。但是他却可以对原始数据直接操作。

 

加入const 避免错误修改,参数值。

局部变量生存期有限。回收结果会错。

#include"iostream"

using namespace std;

int &sum(int &num1,int& num2)

{

num1++;

num2++;

return num1+num2;//会报错。

}

int main()

{

int num1=10,num2=15;

int &result=sum(num1,num2);

cout<<"result="<<result<<endl;//输出result=16.  返回了最后一个参数的引用。

 

 }

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值