#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int b[3][5]={0};
int (*p1)[5];//数组指针
int temp=1;
p1=b;
for(int j=0;j<3;j++)
for(int i=0;i<5;i++)
{
*(p1[j]+i)=temp++;
}
//栈空间上的二维数组的实质为线性的一级指针
int *p2=(int *)b;
for(int j=0;j<(3*5);j++)
{
cout<<*p2++<<endl;
}
return 0;
}
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <memory.h>
using namespace std;
int main()
{
int **a;
a=(int ** )malloc(3*sizeof(int *));
for(int i=0;i<3;i++)
{
//(a+i)指向行指针,*(a+i)指向改行的首元素地址
*(a+i)=(int *)malloc(5*sizeof(int));
//初始化为0
memset(a[i],0,5*sizeof(int));
}
//打印数组
int temp=1;
for(int i=0;i<3;i++)
for(int j=0;j<5;j++)
{
a[i][j]=temp++;
cout<<a[i][j]<<endl;
}
}
🔗
备份地址: 【二维数组指针实质及应用】