C++ 自我对指针使用中的一些理解总结
程序员文章站
2024-03-07 20:32:03
...
以下举例类型为整型int,对于其他基础变量类型也同样适用。
C++ int* 传参数含义两种理解:
1、传入一个int整型变量的地址,修改此变量的值,可传出修改后的值;
2、传入一维数组;
- 如果传入参数前对int*参数赋值为null,那么在函数内对此参数的任何修改都无法传出去。
- 如果传入参数前已经对int*参数进行初始化内存,比如:int* boxes = int[10]; 那么传入的就是一维数组的首地址;在函数内对一维数组内的值进行修改,就可以传出修改后的值。
C++ int** 传参数含义两种理解:
1、传入一维数组的地址,不用初始化内存,可在函数内对参数进行修改并传出修改后的值;
比如对函数:
void init(int ** boxes);
调用时:
int* boxes = null;
Init(&boxes); // 此时就是将int**参数当成一维数组来处理,在函数内对boxes进行一维数组处理赋值即可,传出修改的参数值。
2、传入二维数组;
- 如果传入参数前int**参数赋值为null,那么在函数内对此参数的任何修改都无法传出去;因为没有传入内存地址,而在函数内修改的内存地址不是int**参数的地址。
- 如果传入参数前对int**先进行初始化(或者只对int**的第一维初始化,建议这样做),然后在函数内才可以对参数进行修改(包括对int**的第二维进行初始化修改)并传出修改后的值。因为传入的是初始化后的数组首地址。
上一篇: 国内疫情分析
下一篇: ASP.NET控件10个最有用的属性详解