今日冬令营学习数组有感`
1.使用*()或【】;都有降维的意思。
这里是动态申请二维数组
#include<stdio.h>
#include<stdlib.h>
int main(){
int m,n;
int **a=NULL;//定义一个二级指针
scanf("%d%d",&m,&n);
a=(int **)malloc(sizeof(int *)*m);//申请m个列指针
for(int i=0;i<m;i++){
*(a+i)=(int *)malloc(sizeof(int)*n);
}//每个列指针申请n个数组元素
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
for(int i=0;i<m;i++){
free(*(a+i));
}
return 0;
}
用c++实现动态申请二维数组
#include<iostream>
using namespace std;
int main(){
int m,n;
cin>>m>>n;
int **a=new int*[m];//申请m个列指针
for(int i=0;i<m;i++){
*(a+i)=new int[n];
}//每个列指针申请n个数组元素
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<' ';
}
cout<<endl;
}
for(int i=0;i<m;i++){
delete[] a[i];
}
delete[] a;
return 0;
}
个人感觉c++更简洁。
2.如一维数组a【】,其中a是个地址常量。
2021/1/11记