常引用,const引用的案例,以及常引用作函数参数
2017-09-19 02:07
429 查看
常引用就是只读引用,不能通过引用修改变量的值
用关键字const修饰:
常量引用与普通引用的实例;
常量引用作函数形参
用关键字const修饰:
//引用分为常引用和普通引用 #include <iostream> using namespace std; //常引用作函数参数: int main() { //普通引用 int a=10; int &b=a; b=20; cout<<"a="<<a<<"b="<<b<<endl; //常引用 int x=20; const int &y = x; //y=30;错误,因为为只读引用 //常引用,让变量拥有只读属性,不能通过y来修改x cout<<"y="<<y<<"x="<<x<<endl; //常引用的初始化 //1.用变量初始化常量引用 { int x1=20; const int &y1=x1;//用x1去初始化常引用 } //2.用字面量初始化常量引用 { const int a=10; //c++编译器将a放入符号表中 //int &m = 41; //普通引用,引用一个字面量,字面量没有内存地址,所以其别名,是错误的 const int &m=10;//引用就是给内存其别名,去多个门牌号 //偷偷的给m分配一个空间 } return 0; }
常量引用与普通引用的实例;
常量引用作函数形参
#include <iostream> #include <stdlib.h> using namespace std; //函数返回值作左值 //指针的引用 //回忆二级指针 struct Teacher { char name[20]; int age; }; //在被调用函数获取资源 //*p=&tp1 //函数指针作参数:在被调用函数里面给指针分配内存 void getTeacher(const Teacher &myt) { cout<<myt.age<<endl;//只能使用 // tmp->age=33; //不能修改 //p是实参的地址,*实参的地址 去间接的,去间接的修改实参的值 //将tmp的值赋给*p } int main(int argc,char *argv[]) { //实参的值为空,在栈区分配 tp1是一个地址。 Teacher t1; t1.age=23; //常引用让变量有只读属性 getTeacher(t1); //将地址的地址传入进去 return 0; } //const &e 相当于const int *const e; //普通引用相当于 int * const e1; //当使用常量(字面量)对const引用的进行初始化时,c++编译器会为常量分配空间; //使用字面量对const 引用初始化后,将生成一个只读变量。
相关文章推荐
- const引用和函数占位参数遇上默认参数以及内联函数
- 【转载】用const修饰函数 以及引起的附加限制:const函数不能调用非const的函数或引用非const参数
- 类成员函数声明出的const以及某函数参数中的const
- 指针作函数参数,引用作函数参数以及内存释放
- C++关于类成员函数在参数列表后加const的作用,以及使用条件
- C++数组:数组元素、存储引用以及作为函数参数
- const类型参数的对象引用和const成员函数
- 关于Java函数传参以及参数在函数内部改变的问题——JAVA值传递与引用最浅显的说明!
- 函数形参参数:const对象,const指针 const引用 实例
- 【C/C++学院】0819-/类的成员函数与const-mutable /构造与析构/拷贝构造deletedefault以及深浅拷贝/静态成员函数成员变量类在内存的存储默认参数/友元类以及友元函数
- 作为函数参数的临时变量的引用必须是const的
- C++关于参数为const引用类型的函数调用参数成员函数的一个问题
- 多层函数参数非const引用潜在的危险
- Delphi 中 函数参数中的 const 修饰符的本质以及注意事项
- 函数的输入参数引用为什么要加const
- 位运算+引用+const+new/delete+内联函数、函数重载、函数缺省参数
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
- const可以出现在函数头,参数列表,以及参数尾
- 函数声明符的右值、左值引用以及const引用
- C++ const类型引用做函数参数