将引用作为函数参数

1:void swapr (int a,int b)
{
   int temp;
   temp=a;
   a=b;
   b=temp
   }


    这里的temp是已经定义的变量,也就是我们说的引用,在上面的函数中,首先定义了一个函数,上面先定义,再按值传递,但是c++中是不可以的。只有指针传递,引用传递。
指针传递
viod swapv(int *p,int*q)
{
int temp;
temp=*P;
*p=*q;
*q=temp;
}
引用传递
void swapr(int &a,int&b)
{
int temp;
temp=a;
a=b;
b=temp;
}
二:引用的属性和特别之处
include<iostream>
double cube(double a);
double refcube(double &ra);
int main()
{
  using namespace std;
  double x=3.0;
  cout<<cube(x);
  cout<<"=cube of"<<x<<endl;
  cout<<refcube(x);
  cout<<"=cube of"<<x<<endl;
  return 0;
}

double cube(doouble a) 
{
a*=a*a;
return a;
}
double refcube(double &ra)
{
  ra*=ra*ra;
  return ra;
  }

上面程序中,x=3,输出27,但是后面修改了main()中x的值,27=cube of 27;
ra就是修改x,如果既要引用,又不想修改,则使用const
double refcube(const double &ra)

临时变量,引用参数和const
1:实参类型正确,但不是左值,
2实参类型不正确,但可以转换成为正确的类型。
double refcube(const double &ra)
{
return rarara;
}
左值就是变量,数组元素,结构成员,引用和解除引用用的指针。
常规变量和const变量都是左值,因为可以通过地址访问它们。
尽可能使用const
1:使用const可以避免无意中修改数据的编程错误
2:使用const使函数能够处理const和非const实参,否则只能接受非const数据
3:使用const引用使函数声明为const.
double &&rref=std::sqrt(36.00);
double j=15.0;
double &&jref=2.0*j+18.5;
std::cout<<rref<<’\n’;
std::cout<<jref<<’\n’;
&&叫做右值引用,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值