指针本身是一个很浅显的概念,它就是代表了内存中的一个地址
通过这个地址 就能获取这个地址上保存的数据
嗯,很简单的道理。
但为何写起代码来就感觉被浆糊团团围住?
因为语言发明者给刚入门的程序员搞了一个非常不友好的设定
两个意思相近但其实很不一样的操作符 却用了同一个符号!
在声明一个变量名字是什么类型的时候
*这个符号 代表了你声明的这个变量名字 是一个指针
当声明完成后,这个名字就是他了!这个名字出现的地方就是他!
比如int* ptr; 这个声明以后 ptr出现的地方 就表示你在操作一个名字叫做ptr的int指针
你可以对他赋值 让他重新代表其他地址 ptr=xxxxxx;
你可以对他解引用,取出他地址上的内容 *ptr
注意了,这个地方*表示的是解引用操作符,它和声明时表示指针的* 是两种不一样的符号
这就是坑点,同样是* 却是两种操作符
所以,对&这个符号的理解也可以参照*来进行
在声明时 &表示你声明的名字是个引用 而不在声明时 表示对操作的那个变量取地址
总之,注意下 两个意思的操作符 却用同一个符号 很狡猾!