指针什么时候加*什么时候不需用加,分别代表什么含义-创新互联

指针的二值

我们提供的服务有:网站建设、网站制作、微信公众号开发、网站优化、网站认证、房山ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的房山网站制作公司

 关于指针,我们有很多困惑,尤其是在使用时什么时候加*,什么时候不加*,都分别代表什么意思,在老师指导下,自己做了一些总计如下:


  按照我个人的理解指针的二值分别就是指指针存储的值和指针指向的值,我们都知道,我们经常说的指针实际上是指指针变量,那么变量就有存储的指,只不过指针比较特殊,是用来存储地址的变量,这就是指针二值之一,既然指针变量存储了变量的地址,那么就可以通过存储的地址值就可以找到指向的值。是不是还是很凌乱不知所云,ok,那就让我们看看测试代码,*是用来声明指针的那么当声明了一级指针后,p就是指针变量的名字,代表一个空间,用来存储地址的变量,那么p就是指针变量存储的值,*p就是指向的值,对一级指针是这样,对多级指针以此类推。

如下图1:

指针什么时候加*什么时候不需用加,分别代表什么含义
当声明了普通变量 a,b,并分别赋值10和100;打印输出后的结果就是第一行,这个没有任何疑问吧?

接着我们在程序的开头分别声明了两个一级指针和二级指针,按照我的理解,一级指针是用来存地址的,那么当要存储一级指针时就要用二级指针来接受,好了言归正传,我们接着把a,b的地址赋值给指针变量i,j打印输出的结果  i=17823864  j=17823852 对这个结果是不是很怪,ok,其实这个结果在预计范围之内,也印着了我说的i j代表的是存储的地址值,不信我们看一下那个十进制数对应的十六进制数是否和a和b的地址值相等。如图2

当我们给ij加上*后输出结果如图1的第三行,对于二级指针同样如此,来我们一起看输出结果的第四行,按照我前边说的,*p是指p存储的地址所保存的值,对吧?对于二级指针p,保存的一级指针i的地址,那么i内部的值又是保存的a的地址,也就对应了a的地址,对于**p,p保存了i'的地址,*p指p指向的值也就是i保存的地址值,那么**p就是在*p的基础上指向的值,也就是指i指向的值,即就是a。


  所以对于指针变量来说当不加*时就是指针变量本身存储的值,加上*时代表指针变量指向的值!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:指针什么时候加*什么时候不需用加,分别代表什么含义-创新互联
URL标题:http://azwzsj.com/article/diesei.html