指针与引用
指针:一个数据对象的内存地址称为该数据对象的指针。 格式:type* ptr = &变量名;
引用:数据对象的别名,格式:type& rt = type t;
指针和引用的差别?
1、使用指针需要重新分配空间,引用不需要开辟空间
2、非空区别:在任何情况下都不能使用指向空值的引用。指针可以为空指针。
3、合法性:在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。
4、可修改区别:指针可以被重新赋值以指向另一个不同的对象。但是引用总是指向初始化时被指定的对象,
以后不能改变,但是指定的对象其内容可以改变。
int a = 3;
int& ra = a;
int b = 4;
int& rb = b;
ra = rb;
cout<<&a<<","<<&b<<endl;//000000631AD3FE10,000000631AD3FE14
cout<<&ra<<","<<&rb<<endl;//000000631AD3FE10,000000631AD3FE14
5、应用区别:如果对象一旦指定就不会改变,使用引用;反之,使用指针。