一,一维数组
1.1,声明一维数组
int a[5] = {1, 2, 3, 4, 5};
1.2,一维数组与指针
*a = a[0];
*(a + 1) = a[1];
1.3,一维数组作为函数参数
void display(int nums[], int n){
for(int i = 0; i < n; i ++){
cout<<nums[i]<<" ";
}
}
1.4,动态创建一维数组
int n = 20;
int *p = new int[n];
二,二维数组
2.1,声明二维数组
int a[4][5] = {
{2, 3, 4, 5, 6},
{7, 3, 8, 2, 1},
{8, 3, 4, 5, 0},
{5, 9, 3, 0, 2}
}
2.2,二维数组与指针
二维数组的数组名是指向第一行的指针,指向第 i 行的指针
a + i
可以把二维数组看做有多个一维数组组成,指向每个一维数组的指针
*(a + i) = a[i];
获取二维数组,第 i 行,第 j 列的元素
*(*(a + i) + j) = a[i][j];
2.3,二维数组作为函数参数
void display(int nums[][5], int n){
for(int i = 0; i < n; i ++){
for(int j = 0; j < 5; j ++){
cout<<nums[i][j]<<" ";
}
cout<<endl;
}
}
2.4,动态创建二维数组
void display(int **nums, int row, int col){
for(int i = 0; i < row; i ++){
for(int j = 0; j < col; j ++){
cout<<nums[i][j]<<" ";
}
cout<<endl;
}
}
int main(){
int row = 3, col = 4;
int **p = new int*[row]; //创建一个指针数组,将其首地址保存在b中
for(int i = 0; i < col; i ++){
p[i] = new int[col]; //为指针数组的每个元素分配一个数组
}
//初始化二维数组
for(int i = 0; i < row; i ++){
for(int j = 0; j < col; j ++){
p[i][j] = j;
}
}
//输出二维数组中的值
display(p, row, col);
return 0;
}