C语言中的指针是个很令人头晕眼花的概念,曾听人说,指针是C语言的灵魂,学C,就得把指针烂熟于心。在我学习C的历程中,指针也是第一道坎,每次都能让我的大脑缺氧。几经放弃,又拾起,我想,我不能再放弃了。
什么是指针
指针:地址空间,可以把指针比作我们房子的地址,我们可以通过房子的地址来找到对应的房子,就好比外卖,快递上我们只要填一个地址就行,那个地址就是个指针。
怎么声明与使用指针
|
|
如上一段代码,我们声明一个指针变量a,他指向b的地址。通过间接访问符*来让a可以访问到b变量的值。
*操作符:用于访问指针所指的内容,*(&a)即指a,这两个符号有互相抵消的功能
注意:int a中是属于a的,理论上int a,int a都可以,实际上,int *a这种个人觉得更合适。
更复杂的指针
是不是认为指针仅是这样,那就错了,光这样的指针不足为惧。123int a = 100;int *b = &a;int **c = &b;
什么?wtf,**c是什么鬼,是不是有点晕了,多一个,就多一层炫晕效果。
放松心态,慢慢剖析,是一个操作符,具有从右到左的结合性,所以**c实际上就是*(*c)。是不是明朗点了,*c是什么?*c不就是c所指向的地址的内容么,c所指向的地址是b,那么*c的内容就是b的内容,而b的内容是a的地址,就可以转换成*(&a),即a地址存放的内容,所以**c实际上就是a的内容100.