int a;
int c;
int &b=a;
b =c;
++b;
上面的语句等于下面的语句:
int a;
int c;
int *pb;pb =&a;
pb =&c;
++(*pb);
可见,
1,首先引用必须初始化;
2,引用也占用空间,和指针一样;
3,指针可以指向任意处,而引用必须指向有实际对象处,然而当此对象析构后,引用仍然会指向无效地址;
4,综上,引用只是在编译时期受限制的指针,在运行期除语法上的不同外,和指针完全相同。
int c;
int &b=a;
b =c;
++b;
上面的语句等于下面的语句:
int a;
int c;
int *pb;pb =&a;
pb =&c;
++(*pb);
可见,
1,首先引用必须初始化;
2,引用也占用空间,和指针一样;
3,指针可以指向任意处,而引用必须指向有实际对象处,然而当此对象析构后,引用仍然会指向无效地址;
4,综上,引用只是在编译时期受限制的指针,在运行期除语法上的不同外,和指针完全相同。