C++学习笔记:引用

        引用是已知变量的别名,通过将引用变量用作参数,函数将使用原始数据而不是其副本。下面将r作为a的别名:

int a;
int & r=a;

        就像char*是指向char的指针一样,int&是指向int的引用。(a和r指向相同的值和内存单元)

注意:&r表示r引用变量的地址。

引用和指针的区别

        1.必须在声明引用时将其初始化,而不能像指针那样先声明再赋值。

        2.引用更接近const指针,一旦与某个变量关联起来便有一直效忠于它。

将引用作为函数参数

        按引用传递允许被调用的函数访问函数中的变量。

void Swap(int &a,int &b)
{
    int tmp;

    tmp=a;
    a=b;
    b=tmp;
}//完成a与b值的交换
//与按值传递区分

引用的特别之处

        函数原型中的引用变量参数对应的实参应当是变量名,而不是表达式。

double z=recube(x+3.0)//不允许,x+3.0不是变量

        针对这种情况,可以使用右值引用。(使用&&声明)

double && rref=std::sqrt(36.00);//double&不允许这样
double j=15.0;
double && jref=2.0*j+18.5;//double&不允许这样
std::cout<

函数返回引用需谨慎

const string &version(string & s1,string & s2)
{
    string temp;

    temp=s2+s1+s2;
    return temp;
}

        temp为临时变量,程序试图引用已经释放的内存!

你可能感兴趣的:(c++,学习,笔记)