22.指针与二维数组

a[3][4]

1.父数组包含三个子数组,每个子数组包含4个元素

2.父数组地址用a+i表示,子数组地址用a[i]来表示

3.数组名均可代表首地址

4.i行j列地址:*(a+i)+j==a[i]+i==&a[i][j]

5.父数组偏移1为1行的大小,子数组偏移1为一个元素的大小

案例:打印二维数组

源程序:

#include <stdio.h>

int main()
{
    int arr[3][4]={{1,2,3,4},{4,5,6,7},{8,9,10,11}};
    int i,j;
    
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            //printf("第%d行第%d列的值:%d,对应的地址:%p\n",i+1,j+1,arr[i][j],&arr[i][j]);
            
            printf("第%d行第%d列的值:%d,对应的地址:%p\n",i+1,j+1,*(arr[i]+j),arr[i]+j);

            //printf("第%d行第%d列的值:%d,对应的地址:%p\n",i+1,j+1,*(*(arr+i)+j),*(arr+i)+j);
        }
    }    
    return 0;
}

程序运行结果:

第1行第1列的值:1,对应的地址:000000000061FDE0
第1行第2列的值:2,对应的地址:000000000061FDE4
第1行第3列的值:3,对应的地址:000000000061FDE8
第1行第4列的值:4,对应的地址:000000000061FDEC
第2行第1列的值:4,对应的地址:000000000061FDF0
第2行第2列的值:5,对应的地址:000000000061FDF4
第2行第3列的值:6,对应的地址:000000000061FDF8
第2行第4列的值:7,对应的地址:000000000061FDFC
第3行第1列的值:8,对应的地址:000000000061FE00
第3行第2列的值:9,对应的地址:000000000061FE04
第3行第3列的值:10,对应的地址:000000000061FE08
第3行第4列的值:11,对应的地址:000000000061FE0C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值