B 引用 A:相当于 B 借用了 A 的内存地址和值,A 和 B 任意一个发生改变的话 AB 同时改变。
指针 B 指向 A:B 借用了 A 的值,但是B的内存地址重新分配,不同于 A。
#include
int main(){
int b =0;
int&a = b;
a =4;
std::cout << a<<'\t'<< std::endl;
std::cout <<&a<<'\t'<< std::endl;
std::cout << b<<'\t'<< std::endl;
std::cout <<&b<<'\t'<< std::endl<< std::endl;
b =555554;
std::cout << a << std::endl;
std::cout <<&a<<'\t'<< std::endl;
std::cout << b<<'\t'<< std::endl;
std::cout <<&b<<'\t'<< std::endl<< std::endl;
a =54;
std::cout << a << std::endl;
std::cout <<&a<<'\t'<< std::endl;
std::cout << b<<'\t'<< std::endl;
std::cout <<&b<<'\t'<< std::endl<< std::endl;
//*****************************
int c =100;
int*d =&c ;
std::cout << c<<'\t'<< std::endl;
std::cout <<&c<<'\t'<< std::endl;
std::cout <<*d<<'\t'<< std::endl;
std::cout <<&d<<'\t'<< std::endl<< std::endl;
*d =200;
std::cout << c<<'\t'<< std::endl;
std::cout <<&c<<'\t'<< std::endl;
std::cout <<*d<<'\t'<< std::endl;
std::cout <<&d<<'\t'<< std::endl<< std::endl;
return0;
}
输出结果为:
4
0x7ffee3dff8d8
4
0x7ffee3dff8d8
555554
0x7ffee3dff8d8
555554
0x7ffee3dff8d8
54
0x7ffee3dff8d8
54
0x7ffee3dff8d8
100
0x7ffee3dff8cc
100
0x7ffee3dff8c0
200
0x7ffee3dff8cc
200
0x7ffee3dff8c0