如果想改变一个变量的值,可以使用赋值语句改变其原有的值,如果改变这个变量的语句比较多的话,写在一个原有的作用域里面显得有些累赘且思路模糊,使用函数调用可以解决上面的问题,函数调用可以让变量的修改意图更加明显。函数调用的时候,会使用实参去创建一个临时副本给行参,如果传入变量,形参得到的就是一个变量的副本,如果传入一个地址,形参得到的就是一个地址的副本;传入变量的话,改变形参不会对实参有任何影响,传入变量的地址的话,更改地址指向的内容就会让实参的内容发生改变。
简单总结就是:
一级指针的典型用法就是在函数内部去改变一个函数外部的变量的值;
二级指针的典型用法就是在函数内部去改变一个函数外部的一级指针的值;
换句话说:
如果想通过一个函数调用去改变一个变量的值,就必须传入该变量的地址,该变量的地址作为函数形参就是一级指针;
同理,如果想通过一个函数调用去改变一个一级指针的值,就必须传入该一级指针的地址,该一级指针的地址作为函数行参就是二级指针。
推广:如果想通过一个函数调用去改变一个“N级指针”的值,就必须传入该“N级指针”的地址,该“N级指针”的地址作为函数行参就是“N+1级指针”。
当N=0时,我把他称为0级指针(自创说法),换句话说就是普通的变量;
当N=1时,就是1级指针;
当N=2时,就是2级指针。