二维数组指针实质及应用

来源:互联网 发布:电玩巴士官方淘宝店 编辑:程序博客网 时间:2024/05/16 08:19
#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;        }}

这里写图片描述

0 0