天天看点

c++的引用篇+指针(一)

1、在C++中,变量的引用就是变量的别名。

2、int a;int &b=a;(b就是对a的引用)“&”是引用声明符号,此处并不代表地址。

3、对变量的引用,并不另外开辟内存单元,b和a都是一个内存单元。

4、在声明一个引用时,必须对其初始化(但是作为函数中的参数时除外)。

5、引用具有专一性,不能对一个引用变量初始化两次。(错误:int a1,a2;int &b=a1;int &b=a2;)。

6、引用具有相连性,如果a的值变化了,则引用变量的值也发生了变化,因为他们具有同一个内存地址。

7、变量引用时,数据类型必须相同,使用const除外。

8、作用:

        a)将变量名作为实参,以便于扩充函数的传递功能;

        b)  传送变量的指针;

        c)传送变量的别名;

/*
    测试变量的引用和指针的应用
*/
#include <iostream>


using namespace std;


int main()
{
    int a=3;
    int &b=a;              //b不是地址,为a的引用(别名)[建立引用时必须初始化对象(形参除外),必须声明数据类型];
    cout<<"b="<<b<<endl;  //输出b的值为3;
    int *p=&b;
    cout<<"p="<<p<<endl;        //输出的p为内存中的地址0x69fee4;
    cout<<"*p="<<*p<<endl;  //*p的值为3;
    int *pp=&a;
    cout<<"*pp="<<*pp<<endl;
    cout<<"pp="<<pp<<endl;
    cout<<"**********************************************"<<endl;




    int i=5;
    int *ppp=&i;
    int * &pt=ppp;        //表示一个 int *类型的对象对a的引用
    cout<<"pt="<<pt<<endl;
    cout<<"&pt="<<&pt<<endl;
    cout<<"*pt="<<*pt<<endl;
    cout<<"* &pt="<<* &pt<<endl;
    return 0;
}      

继续阅读