免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2897 | 回复: 4
打印 上一主题 下一主题

[C] 引用和指针的区别, static的作用?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-22 14:06 |只看该作者 |倒序浏览
引用和指针的区别, static的作用 ,, 希望能讲深点,   普通的区别我也知道引用时变量的别面 ,不占空间,指针式变量要占空间,应用必须初始化。  static 有限制作用域和延长生存周期。

论坛徽章:
0
2 [报告]
发表于 2012-12-22 16:20 来自手机 |只看该作者
难道想从 汇编 角度?

论坛徽章:
0
3 [报告]
发表于 2012-12-22 21:18 |只看该作者
引用一般用在函数参数传递上,更直接,而指针,是万能的,

如果函数参数用了引用之后,我们要改变函数参数的值,那么不需要用指针来做操作了,在函数里面只要改变相应的参数的值,函数外边也跟着变了。

不过,非得要区分,那么可以理解为,指针是一种操作内存的工具,引用是一种传递数据的方法(如果单单作为别名个人认为,意义不大),而前面说的,指针是万能的,但是,万能的东西,一般没有专业的好用(他比较复杂)。而引用比较简单,他不需要那些高深的概念。只要知道,例如函数形成声明为引用,那么如果调用的时候参数在函数里面发生了改变,函数外面的值也跟着改变了。而且,安全可靠。不会怕指针搞错了,发生莫名奇妙的情况。

其实在于一个资深程序员来说,有没有引用这个东西都一样,只要你有能力去驾驭好程序就可以了。

论坛徽章:
0
4 [报告]
发表于 2012-12-22 21:25 |只看该作者
补充一点,如果声明参数为引用的函数。那么如果拿函数的参数来做赋值操作的时候要非常谨慎,如果不是有意的情况下,建议,尽量不要声明为引用,因为可能会无意间影响到函数外面对应的值,一言以蔽之,谨慎。
另外引用,理论上讲,更省内存。
php语言,函数调用的时候,优化器会默认是引用的,除非程序要改变它的值了。优化器才会去用一个变量去代替这个引用

论坛徽章:
0
5 [报告]
发表于 2012-12-23 10:58 |只看该作者
以前我也认为引用不占空间,是个类似宏的编译期就能解决的东西
我亲自动手研究了一下,发现引用也要在栈里开辟一块内存,存放的是它所引用的那个变量的地址
跟指针几乎是一样的
区别是语言层面的处理,对引用取地址,取的是它所指向的内存的地址。对指针取地址,取的是它本身所占的内存地址,对指针取值,取的才是它指向的内存地址

有点绕口令,简单点说,如果你在局部声明了很多很多引用的话,可能会导致栈溢出
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP