C++之指针总结

1.指针是指向地址的变量:指针本身即是一个地址也是一个变量。它本身有一个地址,它还能把别的变量的地址赋值给指针,但是不能直接存元素,只能存地址。

2.指针的符号表示:定义一个指针需要在变量名前面加上“*”号(如:int *p),C++之指针总结
指针的定义你可以把它定义为空指针(NULL),然后再赋值,也可以直接赋值给它(但要是一个地址,不接受元素)。打印的时候就要注意了,每种符号的用法都表示不同的关系。从图来看(1)"p"输出的是赋值给指针“P”的变量“a”所拥有的元素,这是“”号的作用就是表示“解引(间接引用)”,用来表示赋值变量里面的内容。(2)没有符号的“P”表示的是指针本身的值,也就是“a”的地址。(3)&a表示的是a这个量本身的地址。(4)&p表示的是指针P本身的地址。至于符号“&”就是取地址符。

3.指针的自增自减:C++之指针总结
指针的自增:如图,当指针“P++”的时候,增加的是“a”数组里面的成员个数,它会根据你定义的数据类型来自动识别大小。比如:定义的是“char”型,“char”型所占用的字节数是一,指针就会增加一个字节来达到下一位元素个数,“int”型也是如此,增加四个字节。
指针的自减:C++之指针总结
自减减的也是成员个数,8-2=6,指的是成员的第六位,而-6就已经不在数组范围内了,这就会造成未知的后果。再者就是,自减操作没有什么实际意义,建议不要使用。

4.二级指针和多级指针:二级指针是指向一级指针的指针,不能直接指向其他量,三级指针也是如此,只能指向二级指针,以此类推。四级五级或更高。不过一般最多只用到二级指针,除了极个别可能会用到更高。C++之指针总结
由此可见,不管定义多少级的指针,只要加上相匹配的个数的解引符,最终指向的都是最初赋值变量的元素“2”。而无论多少级指针都是指向下一级的指针。除了一级。

5.可以代替指针的别名:别名就是一个变量拥有两个或多个名称,就像我们,有正名也有可以有小名。C++之指针总结
它的用法很简单,(1)只要在别名前加上一个取地址符,再把“a”赋值给它就可以了,看起来就像是定义了一个一级指针,然后把“a”赋值给指针。。
(2)别名和变量是同一个地址,就像人家叫你正名和小名,不都是你吗?
(3)别名在函数里的用法:如下图C++之指针总结
这个函数的作用是把a和b逆转。别名的定义直接在形参定义就可以了,记得加上“&”,这样就相当于是main函数a和b的别名。
(4)指针也可以用别名哦,功能和指针一样。当你需要把指针传进函数时,往往需要更高一级的指针才能接,而你给指针定义一个别名就不会那么麻烦了,
C++之指针总结
C++之指针总结