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哦。
讲一个故事:小和尚问老和尚,“佛经里面的道理是真理,那么佛经是真理吗?”老和尚用手指着月亮说,“我的手指向月亮,那我的手是月亮吗?”
呵呵,希望可以帮助你理解。
以上。
疯狂打字的老狼