本文主要是介绍条款1:仔细区别points和references,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
指针和引用主要有三个区别。
1:引用必须初始化,但是指针可以为null。
int* a = NULL;int &b;//这里报错int c = 10;int &d = c;
2:使用引用可能会比使用指针更有效率。
主要原因是使用引用之前不需要测试其有效性。
void printDouble(const double &a)
{cout << a << endl;
}
void printDouble(const double *a)
{if (a)cout << *a << endl;
}
相同的功能,上面的a可以保证肯定是double类型,但下面的a可能是NULL;这里又多了一步。
3:指针可以指向另一个对象,但是引用永远代表最初获得的对象。
string s1("Nancy");string s2("Clancy");string &rs = s1; //rs 代表 s1string *ps = &s1;//ps 指向 s1rs = s2; // rs 仍然代表s1,但是s1的值变成了"Clancy"ps = &s2;// ps 现在指向s2,s1没有变化
这篇关于条款1:仔细区别points和references的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!