| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 913 人关注过本帖
标题:C语言数行代码中 关于使用地址符”&“和”*“的疑问
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
在使用期,用*p解引用,是把指针变量p的值视为某个数据(其类型由声明指针时确定)的入口地址,int* p则假定p储存的入口地址是一个int型数据的地址,CPU在取得這個地址值后,再跳转到那个地址上,提取或使用那个位置的数据,这样*p整体上就是一个int型数据变量了。正如上面有人指出的,指针引用数据,实际上多做了动作,就存取数据的效率而已,它其实不及直接寻址(即根据变量名存取数据)。指针仅用在无法直接寻址存取数据的场合,比如在堆上分配的数据,就是没有变量名的,对那部分空間上的数据,只能用指针,那才是指针的用途。很多初学者,为用指针而硬用指针,对栈上的数据也用指针,那是脱裤子放屁,效率低了不说,还浪费内存,写多了*和&,也影响可读性,是一种极坏的故弄玄虚的风气,好像专写C语言特有的代码才显本事似的,那是登堂而未入室的表现。

授人以渔,不授人以鱼。
2015-04-24 23:41
迪拜
Rank: 2
等 级:论坛游民
威 望:1
帖 子:43
专家分:17
注 册:2012-9-23
收藏
得分:0 
回复 10楼 TonyDeng
奥 谢谢

[ 本帖最后由 迪拜 于 2015-4-25 09:05 编辑 ]
2015-04-25 07:59
迪拜
Rank: 2
等 级:论坛游民
威 望:1
帖 子:43
专家分:17
注 册:2012-9-23
收藏
得分:0 
回复 11楼 TonyDeng
感觉解释的好到位,感觉瞬间醍醐灌顶,谢谢
2015-04-25 09:07
快速回复:C语言数行代码中 关于使用地址符”&“和”*“的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018185 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved