17、指针与二维数组--二维数组元素利用指针的三种输出方法

定义一个二维数组:

int A[3][2]={{1,2},{3,4},{5,6}};

A[0]、A[1]、A[2]是数组 A 第一行、第二行、第三行的起始地址,也就是说 A[0]=&A[0][0],A[1]=&A[1][0],A[2]=&A[2][0]。A[1]+1 表示第二行、第二列的地址,即 &A[1][1]。

利用指针,输出二维数组的元素(1):

//利用指针,输出二维数组的元素
#include<iostream>;
using namespace std;
void main()
{
    int Matrix[5][5]={{1,0,0,0,0},
                      {0,1,0,0,0},
                      {0,0,1,0,0},
                      {0,0,0,1,0},
                      {0,0,0,0,1}};
    int i,j,p;
    for (i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
           p=*(Matrix[i]+j);
           cout<<p<<" ";
        }
        cout<<endl;
    }
}

这里写图片描述

对于上例中的 Matrix[i] 可以看做是一维数组(即每一行的地址作为一个数组),那么Matrix[i] 还可以写成 *(Matrix+i) 的形式。因此二维数组中的元素 Matrix[i][j] 的地址还可以写成 *(Matrix+i)+j,于是Matrix[i][j] 就可以写成 *(*(Matrix+i)+j) ,同时也可写成 (*(Matrix+i))[j]

利用指针,输出二维数组的元素(2):

//利用指针,输出二维数组的元素(2)
#include<iostream>;
using namespace std;
void main()
{
    int Matrix[5][5]={{1,0,0,0,0},
                      {0,1,0,0,0},
                      {0,0,1,0,0},
                      {0,0,0,1,0},
                      {0,0,0,0,1}};
    int i,j,p;
    for (i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
           p=*(*(Matrix+i)+j);
           cout<<p<<" ";
        }
        cout<<endl;
    }
}

这里写图片描述

利用指针,输出二维数组的元素(3):

//利用指针,输出二维数组的元素(3)
#include<iostream>;
using namespace std;
void main()
{
    int Matrix[5][5]={{1,0,0,0,0},
                      {0,1,0,0,0},
                      {0,0,1,0,0},
                      {0,0,0,1,0},
                      {0,0,0,0,1}};
    int i,j,p;
    for (i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
           p=(*(Matrix+i))[j];
           cout<<p<<" ";
        }
        cout<<endl;
    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值