您的位置:首页 > 其它

引用的基本概念和本质探索

2016-09-20 21:06 176 查看
a) 在C++中新增加了引用的概念

b) 引用可以看作一个已定义变量的别名

c) 引用的语法:Type& name = var;

d)引用做函数参数那?(引用作为函数参数声明时不进行初始化)

#include <iostream>

using namespace std;

struct Teacher
{
    int &a;
    char &b;
};

int main()
{
    int a = 10;//编译器分配4个字节内存空间 a为内存空间的别名
    int &b = a;//b就a的别名
    printf("&b:%d\n",&b);//b有自己的内存空间
    printf("b:%d\n",b);//10
    a = 11;//直接赋值
    {
        int *p =&a;
        *p = 12;//通过指针间接赋值
        printf("a:%d\n",a);//12
    }
    b = 14;//通过b间接赋值

    printf("a:%d\n",a);//14

    {
        char s ='c';
        char &c = s ;
        printf("&s:%d\n",&s);//
        printf("&c:%d\n",&c);// s和c的地址一样 说明引用是对同一块地址空间的门牌号
        printf("sizeof(Teacher):%d\n",sizeof(Teacher));//8  
        /*
        1) 引用在C++中的内部实现是一个常指针
           Type& name Type* const name
        2)C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。*/
    }
    system("pause");
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: