为什么c++的指针那么难学?

指针本身是一个很浅显的概念,它就是代表了内存中的一个地址

通过这个地址 就能获取这个地址上保存的数据

嗯,很简单的道理。

但为何写起代码来就感觉被浆糊团团围住?

因为语言发明者给刚入门的程序员搞了一个非常不友好的设定

两个意思相近但其实很不一样的操作符 却用了同一个符号!

在声明一个变量名字是什么类型的时候

*这个符号 代表了你声明的这个变量名字 是一个指针

当声明完成后,这个名字就是他了!这个名字出现的地方就是他!

比如int* ptr;  这个声明以后 ptr出现的地方 就表示你在操作一个名字叫做ptr的int指针

你可以对他赋值 让他重新代表其他地址 ptr=xxxxxx;

你可以对他解引用,取出他地址上的内容  *ptr

注意了,这个地方*表示的是解引用操作符,它和声明时表示指针的* 是两种不一样的符号

这就是坑点,同样是*  却是两种操作符

所以,对&这个符号的理解也可以参照*来进行

在声明时 &表示你声明的名字是个引用  而不在声明时 表示对操作的那个变量取地址

总之,注意下 两个意思的操作符 却用同一个符号  很狡猾!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值