引用
- 引用和指针的区别
1:引用在定义时必须初始化,指针没有要求
2:引用初始化时指向一个实体,之后不能再指向其他实体,而指针可以在任何时候指向任何同类型0的实体
3:没有NULL引用但有空指针
4:sizeof(引用)结果是指向实体类型的大小,而sizeof(指针)是固定的8,或者4
5:引用自加即引用实体自加,而指针自加指的是向后偏移一个类型的大小
6:有多级指针但没有多级引用
7:访问实体方式不同,指针需要解引用而引用不需要 - const引用(
1.引用指向const修饰的变量或者是常量时也需要用const修饰
2.aa隐式类型转换时生成一个临时的整形变量,bb指向此临时变量(临时变量具有常性)
#include<iostream>
using namespace std;
void test(){
int a=3;
int& b=a;
cout<<"b="<<b<<endl;
int& c=a;
int aa=7;
b=aa;
cout<<"b="<<b<<endl;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"c="<<c<<endl;
cout<<&a<<" "<<&b<<" "<<&c<<endl;
}
int& add(int& a){
return ++a;
}
void test1(){
int a=0;
int& b=add(a);
int c=add(a);
cout<<&a<<" "<<&b<<endl;
cout<<&c<<endl;
}
void test2(){
const int a=10;
const int& b=a;
const int& r=19;
double aa=2.0;
const int& bb=aa;
}
int main(){
test1();
}