版权声明:本文为博主原创文章,未经博主允许不得转载,如有技术需要联系[email protected]! https://blog.csdn.net/harrison2010/article/details/82862126
int a1 = 10;
int a2 = 20;
int a3 = a1;//赋值语句,可以理解成数据的克隆,a3与a1 不在是指向一个对象
int &b = a1;
//int &b2 = 900; //不合法,非常量引用的初始值必须左值
int *c = &a1;
//&b = a2; 不合法,表达式必须是一个可以修改的左值。说明b不能被重复赋值
//b = 900; 合法,这里已经对b指向的对象赋值,所以这里的修改会改变a1的值
*c = 100;
c = &a2;//说明 指针是可以被重新赋值到新的地址,这里的表达式是可以左值的,
*c = 200;//这样的修改,也是对c指针指向的对象重新赋值,所以也会影响到a2的值。
cout << "a1:" << a1 << ":地址" << &a1 << endl;
cout << "a2:" << a2 << ":地址" << &a2 << endl;
cout << "a3:" << a3 << ":地址" << &a3 << endl;
cout << "b :" << b << ":地址" << &b << endl;
cout << "c :" << *c << ":地址" << c << endl;
/**
1.引用变量开始必须被初始化,是一个别名,引用变量不能再被修改只想别的变量 &b = a2。
2.一旦定义了引用变量 那么b的使用与原来的变量a1 一样没有区别
3.指针变量可以被重新赋值
4.指针变量不需要被初始化
5.指针变量的使用* 与引用变量都会对对象数据进项更改
6.未完待续
*/