目录
一、引用
引用只是变量的一个别名,引用只能引用变量,并且只能引用一次,不能引用A再引用B,引用没有自己的地址
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int & b = a;
b = 20;
cout<<"a = "<<a<<"\t"<<"b = "<<b<<endl;
cout<<&a<<" "<<&b<<endl;
return 0;
}
a = 20 b = 20
0x9ffe34 0x9ffe34
二、指针
指针就是地址,指针变量存放的是某一个变量的地址。指针可以改变指向,并且有自己的地址。
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int * b = &a;
*b = 20;
cout<<"a = "<<a<<"\t"<<"b = "<<*b<<endl;
cout<<&a<<" "<<&b<<endl;
return 0;
}
a = 20 b = 20
0x9ffe3c 0x9ffe30
三、指向指针的引用
#include<iostream>
using namespace std;
int main()
{
int a = 10,x = 100;
int *b = &a;
*b = 20;
int *& c = b;
c = &x;
cout<<"c = "<<*c<<"\t"<<"b = "<<*b<<endl;
cout<<&c<<" "<<&b<<endl;
return 0;
}
c = 100 b = 100
0x9ffe28 0x9ffe28
四、指向引用的指针
因为引用没有自己的地址,所以指针不能指向引用
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int & b = a;
int & * p = &b; //[Error] cannot declare pointer to 'int&'
cout<<*p<<endl;
return 0;
}