“指针”


礼赞吧!伟大的摸鱼摆烂大王终于想起来要讲指针了!(虽然想起来了,但是其实是抱着分成好几篇小文章的摆烂想法的)

说到指针,它可以说是c语言的灵魂所在,c语言的所谓高效性,大半都是依托指针所实现的。简单来说,指针可以视为一种数据类型,与一般的数据类型差别不大,只不过它所占据的内存之中所储存的是一个机械地址,相当与一个索引。当计算机读入指针所储存的地址时,就会跳转到地址所对应的内存位置。值得一提的是,指针本身同样具有地址,于是乎,一个指针所储存的地址可以是另一个指针的地址。

理解上面这些东西,接下来便是学会指针的语法了,其实也很简单:

1
2
int a=3;
int *b=&a

上面两条代码就是最简单的指针运用,第一行创建了一个整型变量a,第二行则是创建了一个指向整型的指针变量b,并且将a的地址赋值给了指针b。

这里强调2个符号:与&,其中 *是指针的标志同时也是解引用符;&则是取地址符,即得到一个变量或常量的地址(在c++中&被赋予了不同的含义,这个之后再说)。

1
2
int c;
c= *b;

这里便是对指针的解引用实例,即*是得到指针所储存的地址中储存的信息的意思,将这四行代码连接起来,你能不能得出c的值呢?

这里再提一下多重指针,我不多说,一张图足矣

拜拜啦!

(再多提一嘴,指针的很妙,妙不可言,我希望各位小朋友们能多多开发想象力运用指针这个东西,在这个过程中你一定会遇到很多很多问题,解决它们便能大大增加你对计算机底层储存逻辑的认识!有实在不会的也可以来询问我哦)


文章作者: 耀韬
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 耀韬 !
  目录