引用和指针的差别
引用总是指向某个对象,定义引用时没有初始化是错误的
赋值行为差异,给引用赋值修改的是该引用所关联对象的值,而不是使引用与另一个对象关联
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int ival = 1024, ival2= 2048; 6 int *pi=&ival, *pi2 = &ival2; 7 cout<<"--before\nival = "<<ival<<" ival2 ="<<ival2<<endl; 8 cout<<"pi = "<<*pi<<" pi2 = "<<*pi2<<endl; 9 //指针赋值 10 pi=pi2; 11 cout<<"--after\nival = "<<ival<<" ival2 ="<<ival2<<endl; 12 cout<<"pi = "<<*pi<<" pi2 = "<<*pi2<<endl; 13 int &ri = ival,&ri2= ival2; 14 cout<<"--before\nival = "<<ival<<" ival2 ="<<ival2<<endl; 15 cout<<"ri = "<<ri<<" ri2 = "<<ri2<<endl; 16 //指针赋值 17 ri=ri2; 18 cout<<"--after\nival = "<<ival<<" ival2 ="<<ival2<<endl; 19 cout<<"ri = "<<ri<<" ri2 = "<<ri2<<endl; 20 cin.get(); 21 return 0; 22 }