C++指针数组
C++指针数组
这里所介绍的C++指针数组,不是之前介绍C++数组时介绍的指向数组的指针,而是数组的元素都是由指针构成,也大致可以理解为指针数组的元素是一个个内存地址。
C++指针数组定义方法
C++的指针数组的定义方法,与定义其它的数组的语法是一样的,只是将元素改成同类型的指针即可。如果指针数组中元素的指针指向的只是普通的变量的内存地址,则可以使用寻址符号“&”来获取变量的地址,如果元素指针指向的是C++中的字符串或数组,则可以直接将这些类型的变量当作元素,因为数组,包括字符数组,是指向数组第一个元素的内存地址的指针。如果指针数组中的元素是数组,那么就相当于是多维数组了。
C++指针数组的声明语法大致如下:
type *pointerArrName[ max ]
C++指针数组实例代码
如下实例代码,定义了一个元素为字符串的指针数组,并通过printf()函数和%x占位符输出其内存地址,之后定义了一个普通变量,并使用“&”寻址符号将地址赋值给另一个指针数组:
#include <iostream>
using namespace std;
int main(){
// 定义一个元素为字符串的指针数组
const char *pstr[2] = {"Hello","World"};
printf("%s\n",pstr[0]);
// 定义指向普通变量的指针数组
int arr[3] = {1,2,3};
int *pInt[3] = {NULL, NULL, NULL};
for(int i=0; i<3; i++){
pInt[i] = &arr[i];
}
for(int *j : pInt){
cout << *j << endl;
}
return 0;
}
代码编译运行,得到输出:
Hello
1
2
3
免责声明:内容仅供参考,不保证正确性!