关于我对指针的理解请高手指点我下
发布网友
发布时间:2024-10-03 09:24
我来回答
共2个回答
热心网友
时间:2024-11-07 08:07
你可以这样理解,定义qq的时候,它的类型是int *,而不是int,也就是说,它是一个指向int的指针。
获取内存地址,就可以对这个地址里的数据进行操作了。打个比方,我知道了你的宿舍号,就可以找你了。
&是取地址运算符,*是取地址中的值,至于用什么方式取,去几个字节,则取决于指针的类型。如上,qq是指向int的指针,所以*qq取出来就是一个整数。既然qq表示b的地址,那么*qq就是这个地址的值了,b=5,所以*qq就是5。
至于*(&b),一样的道理,&b是b的地址,再加上*,取这个地址的值,当然还是b的值了。
关于指针,一定要好好理解。可以用一些比方来帮助你理解,比如上面的宿舍号。宿舍号虽然是509,但是宿舍里面的人可不是509哦。
讲一个故事:小和尚问老和尚,“佛经里面的道理是真理,那么佛经是真理吗?”老和尚用手指着月亮说,“我的手指向月亮,那我的手是月亮吗?”
呵呵,希望可以帮助你理解。
以上。
疯狂打字的老狼
热心网友
时间:2024-11-07 08:13
qq=&b是将指针qq指向变量b的内存地址,这也是指针赋值的一种方法.
指针其实就是指向内存地址的.
*(&b)是一个指针,不过用途倒不大,&b是地址*是将此地址做为指针
*qq进行printf后输出的是b的值,而不是地址;
若对qq输出,便是输出地址