1) 引用始終指向同一個對象,引用必須初始化;
2) 賦值差異:
l 給引用賦值修改的是引用所關聯的對象值,而不是將引用與另一個值關聯。
int ival=1024, ival2 =2048;
int *p=&ival; int *p2=&ival2;
cout<<"*p="<<*p<<" *p1="<<*p2<<endl; //1024 1024
p=p2; //p指針指向p2所指的ival2
cout<<"*p="<<*p<<" *p1="<<*p2<<endl; //2048 2048
cout<<"ival="<<ival<<" ival2="<<ival2<<endl; //1024 2048
l 給指針賦值則可以修改指針關聯另一個對象。
int num=1024,num2=2048;
int &r=num;int &r2=num2;
cout<<"&r="<<num<<" &r2="<<num2<<endl; //1024 2048
r=r2; //修改引用所關聯的對象值
cout<<"&r="<<num<<" &r2="<<num2<<endl; //2048 2048