C++指针使用小技巧

指针基础

首先说一下指针是什么。

指针,实际上就和正常的变量一样,稍微不同的是,变量的值是一个数字、字符或者字符串

而指针的值则是一个地址。所以,在给带指针的变量赋值的时候要用的便是&(地址符)。

这个时候,带*(指针)的变量,如*p,代表的便是该地址的值,而p,代表的则是这个地址。

而给指针赋值的方式有两个,一是在声名变量时赋值(如下左图),另一个则是在声名变量后再给变量赋值(如下右图)。

C++指针使用小技巧
而在给指针变量赋予数组值的时候,则只需给指针变量赋以数组名称即可(如下图),在输出时仅需要令地址+1,便可以使数组值输出了。
C++指针使用小技巧

指针技巧

第一个小技巧,对于函数大家一定不陌生,可是写在函数里面的值的变化往往没有办法影响到主函数的变化,但是如果使用了指针,就可以通过指针来对主函数的值进行更改。如下图:对于全局变量a和p,当函数里对a和p进行数值上的更改,但是对a的更改并没有反映在主函数之中,而加了指针的变量*就影响到了主函数的数值。
C++指针使用小技巧
第二个小技巧则是指针能够将一维的字符数组变为二维字符数组数组。如下图: 正常的使用char的时候一位数组a[10]仅仅可以输入9个字符(最后一位为“/0”);
C++指针使用小技巧
如果使用二维数组的话,如下图的事例,a[3][10]则就只能输出三个字符数为9的字符。
C++指针使用小技巧
可是如果使用了指针的话,如下图所示,便可以输出三个没有长度限制的字符串了。除此之外,也可以使用string来产生同样的效果,但是要使用string还需要引用一个string函数,而使用指针便可以轻易达到这个效果
C++指针使用小技巧

动态分配

最后,小编来介绍一下指针的一个最重要的一个使用方式——动态分配。

往常咱们在使用数组的时候,数组名称后的中括号里的字母必须是一个稳定不可变化的常数。可是,在日常应用里我们往往要的不是一个固定的数,而这个时候便需要用到这个神奇的动态分配了。

C++指针使用小技巧
如上图,如果正常的声名一个变量N,在后面的数组中再声名数组a[N],则会被系统阻拦运行。而使用指针的话,通过new int[N]的指令,则可以通过动态分配来分配一个数组空间,这个空间的大小还可以随N的输入而变化。

除了int,还可以通过动态分配来的创建其他各种形式的数组,而这样一种便利的方式就只能通过指针来实现,可见指针的重要性。

相关文章: