关于我对指针的理解请高手指点我下

王朝知道·作者佚名  2009-08-02
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

int*qq,b=5;

qq=&b//就是获取了b内存中的地址,那么获取了内存地址有什么用呢??

*(&b)//又是什么意思???

*qq打印出来后怎么又会变成5呢??不是打印出内在地址吗?

參考答案:

你可以这样理解,定义qq的时候,它的类型是int *,而不是int,也就是说,它是一个指向int的指针。

获取内存地址,就可以对这个地址里的数据进行操作了。打个比方,我知道了你的宿舍号,就可以找你了。

&是取地址运算符,*是取地址中的值,至于用什么方式取,去几个字节,则取决于指针的类型。如上,qq是指向int的指针,所以*qq取出来就是一个整数。既然qq表示b的地址,那么*qq就是这个地址的值了,b=5,所以*qq就是5。

至于*(&b),一样的道理,&b是b的地址,再加上*,取这个地址的值,当然还是b的值了。

关于指针,一定要好好理解。可以用一些比方来帮助你理解,比如上面的宿舍号。宿舍号虽然是509,但是宿舍里面的人可不是509哦。

讲一个故事:小和尚问老和尚,“佛经里面的道理是真理,那么佛经是真理吗?”老和尚用手指着月亮说,“我的手指向月亮,那我的手是月亮吗?”

呵呵,希望可以帮助你理解。

以上。

疯狂打字的老狼

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航