【文章转载】解引用的解释

解引用
“解引用”,我倒觉得可以从另一个角度理解,”*”的作用是引用指针指向的变量值,引用其实就是引用该变量的地址,“解”就是把该地址对应的东西解开,解出来,就像打开一个包裹一样,那就是该变量的值了,所以称为“解引用”。例如:*p = 100,p指向100的地址,解引用*p等于p指向地址的变量值,即*p=100叫做解引用。
国外资料出现的一词“reference”,应译为”参考,参照“,在我们中文技术资料上翻译为了”引用“,照上面说的那种场景,倒也可以理解的通。而”dereference“翻译为”解除参照“,资料上翻译为”解引用“,如果回到上面那种场景,那”解引用“或者”解除参照“就是:我们拿了(引用)别个作者的话,却没有注解(解除参照)说这是别人的话,实际上我认为”去引用化“也许更能表达这个过程或者这个意思。那么对应到C语言中,指针变量是存储”其它变量“的地址的,当我们用”*“去操作指针时,我们的意思就是把那个”其它变量“的内容拿过来放在这里,却不说明这是别人(在这里就是指针存储的变量)的东西,当然这只是类比。过程差不多相似,只要能帮助理解,就阿弥陀佛了。于是”解引用“这样来理解,貌似好多了。不知道大家懂我说的了没?
网上查的”dereference“在技术资料上翻译真是各种多阿,这里不说了,反正其它翻译也许更难理解。
翻译别国资料,用词真是难,毕竟两种语言词汇不一定完完全全的相对应。尤其技术资料,还要讲究专业术语,翻译成中文时,那是真的千挑万选,才搞出一个像”专业术语“的词汇来表达。现在国内作者翻译水平参差不齐,加上对术语的创造,使得翻译后的中文资料难于阅读啊。比如上面的”解引用“就是一例。再说个”正则表达式“,从字面意思来看,完全不懂,或许看英文都比我们自己的中文好理解一点。但是纯英文看的累,还慢,真是两难啊。
还可以把“解引用”理解为“解码”。假设ptr里存放的是一个内存地址,那么ptr就是这个内存地址里存放的数据。前面这个“”的解引用操作,就可以理解为对这个ptr进行解码,解码得到的数据就是*ptr,也就是我们常说的“这个内存地址里存放的数据”或者“这个指针指向的数据”。“指针”的理解模式太容易混淆,而“解码”的理解模式更好记一点。

原文地址
http://baike.baidu.com/link?url=m_L0YuBzLjrv6uDzLf8UdMlRnh6oPI6i-pyb82ZN-NYIuf7H69raJExztm3jwiKTOUUVwcSFxWEUyX9d58BkQVNhJtJrRTXhJgFSS4XJWSpPk3y3yBi7ALc05Yk1FlEb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值