c中的引用与指针的差异.
c中的引用与指针的差异.
1/7
c中的引用与指针的差异.
c++中的引用与指针的差异
★相同点:
都是地址的看法;
指针指向一块内存,它的内容是所指内存的10;
}
?
intn=0;
Func2(&n;
cout<<“n=”<<n<<endl;//n=10
以下是“引用传达”的示例程序。由于Func3函数体内的x是外面变量n的引用,x和n是同一个东西,改变x等于改变n,因此n的值成为10.
voidFunc3(int&x
{
x=x+10;
}
?
intn=0;
Func3(n;
cout<<“n=”<<n<<endl;//n=10
比较上述三个示例程序,会发现“引用传达”的性质象“指针传达”,而书写方式象“值传达”。实质上“引用”能够做的任何事情“指针”也都能够做,为什么还要“引用”
c中的引用与指针的差异.
c中的引用与指针的差异.
12/7
c中的引用与指针的差异.
这东西?
c中的引用与指针的差异.
c中的引用与指针的差异.
7/7
c中的引用与指针的差异.
答案是“用合适的工具做恰到利处的工作”。
指针能够毫无拘束地操作内存中的如何东西,尽管指针功能富强,但是特别危险。
就象一把刀,它能够用来砍树、裁纸、修指甲、理发等等,谁敢这样用?
若是的确只需要借用一下某个对象的“别名”,那么就用“引用”,而不要用“指针”,省得发买卖外。比方说,某人需要一份证明,本来在文件上盖上公章的印子就行了,若是把取公章的钥匙
交给他,那么他就获得了不应有的权益。
——————————
摘自「高质量c++编程」
指针与引用,在MoreEffectiveC++的条款一有详细表达,我给你转过来
条款一:指针与引用的差异
指针与引用看上去完好不一样(指针用操作符‘和*’‘->’,引用使用操作符‘。’),但是它们忧如有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在
什么时候使用引用呢?
第一,要认识到在任何情况下都不能够用指向空值的引用。一个引用必定总是指向某些对象。因此若是你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,由于这样你能够赋空值给该变量。相反,若是变量必定指向一个对象,比方你的设计不赞成变量为空,这时你就可以把变量声明为引用。
“但是,请等一下”,你思疑地问,“这样的代码会产生什么样的结果?”
char*pc=0;//设置指针为空值
char&rc=*pc;//让引用指向空值
这是特别有害的,毫无疑问。结果将是不确定的(编译器能产生一些输出,以致任何事情都有可能发生),应该躲开写出这样代码的人除非他们赞成改正错误。若是你担忧这样的代码会出
c中的引用与指针的区别 来自淘豆网www.taodocs.com转载请标明出处.