转载:https://www.runoob.com/cplusplus/cpp-array-of-pointers.html
指针内容的补充
1.char *names[MAX] 这种字符型的指针数组是存储指针的数组,但是在理解字符型指针数组的时候,可以将它理解为一个二维数组,如 const char *names[4] = {"Zara Ali","Hina Ali","Nuha Ali","Sara Ali",} 可以理解为一个 4 行 8 列的数组,可以用 cout << *(names[i] + j)<< endl 取出数组中的每个元素。
#include <iostream>
using namespace std;
const int MAX = 4;
int main ()
{
const char *names[MAX] = {
"Zara Ali",
"Hina Ali",
"Nuha Ali",
"Sara Ali",
};
for (int i = 0; i < MAX; i++)
for (int j = 0; j < 8; j++)
{
cout << "Value of names[" << i << "] = ";
cout << *(names[i] + j)<< endl;
}
return 0;
}
//输出结果
Value of names[0] = Z
Value of names[0] = a
Value of names[0] = r
Value of names[0] = a
Value of names[0] =
Value of names[0] = A
Value of names[0] = l
Value of names[0] = i
Value of names[1] = H
Value of names[1] = i
Value of names[1] = n
Value of names[1] = a
Value of names[1] =
Value of names[1] = A
Value of names[1] = l
Value of names[1] = i
Value of names[2] = N
Value of names[2] = u
Value of names[2] = h
Value of names[2] = a
Value of names[2] =
Value of names[2] = A
Value of names[2] = l
Value of names[2] = i
Value of names[3] = S
Value of names[3] = a
Value of names[3] = r
Value of names[3] = a
Value of names[3] =
Value of names[3] = A
Value of names[3] = l
Value of names[3] = i
2.一维动态数组的定义方式:
type* arrayname = new type [size](); // size可以是变量
访问与赋值方式:
for(int i=0;i<size;i++){
*(arrayname+i)=i; // 或是 arrayname[i];
cout<<*(arrayname+i)<<"\n";
}
释放数组的方式:
delete [] arrayname;