C++指针的引用

[1]指针的引用,必须加上头文件<iomanip>因为调用类setw()

           对一个数据可以使用“引用”(reference)这是C++
           对C的一个重要扩充,引用是一种新的变量类型,
           它的作用是为一个变量起一个别名。假如有一个变
           量a,想给它起一个别名b,可以这样写:
           int a;
           int &b=a;

           注意: 在上述声明中,&是引用声明符,并不代表
           地址。不要理解为“把a的值赋给b的地址”。声明变
           量b为引用类型,并不需要另外开辟内存单元来存
           放b的值。b和a占内存中的同一个存储单元,它们
           具有同一地址。声明b是a的引用,可以理解为:
           使变量b具有变量a的地址,当b代表与a的关系之后,
           不能在作为其他变量的代表

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
        int a = 10;
        int &b = a;
        a = a*a;
        cout << a << setw(6)<<b<<endl;
        b = b/5;
        cout << b<< setw(6)<<a<<endl;
        return 0;
}
View Code

 

[2]引用作为函数的参数

   (1) 将变量名作为实参和形参。这时传给形参的是
    变量的值,传递是单向的。如果在执行函数期间形
    参的值发生变化,并不传回给实参。因为在调用函
    数时,形参和实参不是同一个存储单元。
          

    比如要实现两个数值之间的互换,用其他方法比较难理解

用下面的方法就比较好理解,

函数申明的时候用的是int swap(int &a,int &b),

在调用函数swap(i,j)的时候,无疑  &a = i,&b = j,这样两个的内存就放在一起了        

#include <iostream>
using namespace std;
int main( )
{ 
    void swap(int &,int &);
    swap(int &,int
    int i=3,j=5;
    swap(i,j);
    cout<< i=′′<<i<<′′ <<′′j=′′<<j<<endl
    cout<<′′i=′′<<i<<′′ ′′<<′′j=′′<<j<<endl;
    return 0;
}

void swap(int &a,int &b)
{ 
    int temp;
    temp=a;
    a=b;
    b=temp;
}
View Code

 

posted @ 2014-08-01 16:07  跨七海的风  阅读(246)  评论(0编辑  收藏  举报