C++ 引用基础
2016-06-13 23:13
337 查看
//引用 #include<iostream> using namespace std; struct Student{ char name[30]; int age; }; struct Teacher{ int &at2; int &bt2; }; int GetNum(Student &s2){ s2.age = 19; return s2.age; } void main(){ int a = 10;//编译器分配4个字节的内存,变量名a就是内存空间的的标识 //引用概念 //在C++中新增加了引用的概念,C语言中没有引用的概念 //引用可以看作一个已定义变量的别名 //引用的语法:Type& name = var; //引用做函数参数那?(引用作为函数参数声明时不进行初始化) //int &b1; //报错 error C2530: “b1”: 必须初始化引用 //说明:引用定义的时候必须赋初始值 int &b = a;//b是a的别名 变量b也是a对应内存空间的标识 //a的三种赋值方式 a = 11;//①直接赋值 printf("a=%d\n",a); { //②间接赋值 int *p = &a; *p = 12; printf("a=%d\n", a); } //③引用赋值 b = 13; printf("a=%d\n", a); //结构体引用 Student s1; s1.age = 12; //定义s1的引用 Student &s2 = s1; s2.age = 17; //直接引用 printf("直接引用--学生的年龄是%d\n", s1.age); //间接引用 printf("间接引用--学生的年龄是%d\n", GetNum(s1)); //引用的本质 printf("结构体Teacher的大小是%d\n", sizeof(Teacher));//打印8 //说明 int &bt2; 占据4个字节大小的内存空间 //引用的本质 //1)引用在C++中的内部实现是一个常指针 //Type& name <--> Type* const name //2)C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。 //3)从使用的角度,引用会让人误会其只是一个别名,没有自己的存储空间。这是C++为了实用性而做出的细节隐藏 system("pause"); }
相关文章推荐
- 34. Search for a Range(二分查找有重复元素数组中的目标数的第一个位置和最后一个位置)
- C语言乘法表
- 【C语言】18-变量类型
- 第三次作业
- 拥有 C/C++ 基础的学生,如何看懂1万行代码的项目
- c++:角色类,基础
- 350. Intersection of Two Arrays II
- C++统计字符串中每个字符出现的次数
- 【c++程序】句子逆序
- c++:指向学生类的指针:求最高成绩
- 队列 队列的数组实现及链表实现
- 飛飛(六十七)文件的应用 数数
- 飛飛(六十六)文件的结果输出
- c++:人数自定的工资类
- C++常用类型转换
- C++ this指针详解
- sha512散列(C语言)
- sha1散列(C语言)
- RSA加密(C语言)
- des (C语言)