本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

☆★☆★☆★☆★☆★☆
生活的点点记录,以及一些体会...........

喜欢是淡淡的爱,爱是深深的喜欢.

时间会见证一切.......................

欢迎大家指出错误,共同进步..........

期待中..............................

☆★☆★☆★☆★☆★☆


我的分类(专题)

日志更新

最新评论

留言板

链接

世纪音频

 

 


Blog信息
blog名称:
日志总数:162
评论数量:312
留言数量:0
访问次数:946216
建立时间:2005年5月17日




[读书笔记]引用与指针的比较:
软件技术

oceanblue 发表于 2005/6/22 20:44:27

(1)引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2)不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL. (3)引用一旦被初始化为指向一个对象,它就不能被改变不另一个对象的引用;而指针在任何时候都可以改变为指向另一个对象.给引用赋值并不是改变它和原始对象的绑定关系. (4)引用的创建和销毁并不会调用类的拷贝构造函数 (5)在语言层面,引用的用法和对象一样;在二进制层面,引用一般都是通过指针来实现的,只不过编译器帮我们完成了转换. 总的来说:引用既具有指针的效率,又具有变量使用的方便性和直观性. 1值传递 void Func(int x) { x=x+10;//修改的是n在堆栈中的拷贝x } int n=0; Func(n); cout<<"n="<<n<<endl;//n=0 2指针传递 void Func2(int *x) { (*x)=(*x)+10;//修改指针x指向的内存单元的值 } int n=0; Func(&n); cout<<"n="<<n<<endl;//n=10 3.引用传递 void Func3(int &x) { x=x+10;//修改的是x引用到的对象n } int  n=0; Func3(n); cout<<"n="<<n<<endl;//n=10


阅读全文(7730) | 回复(2) | 编辑 | 精华
 


回复:引用与指针的比较:
软件技术

vinz(游客)发表评论于2007/12/19 11:47:13

指针部分有误


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:引用与指针的比较:
软件技术

快乐生活(游客)发表评论于2007/4/7 14:13:59

谢谢,解释得很透沏

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144767213 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号