二维数组输出的指针表示法技巧解析

指针输出二维数组技巧解析

千万不要觉得二维数组中 * 也表示取值,两次 * 才表示取值,而在二维数组中第一个*就是固定用法,详见代码的解析以及实例;

#include <stdio.h>
#include <stdlib.h>

//一维数组中  :a[1] 与 *a(+1)
//二维数组中  :&a[1][1] 与 *(a+1)+1 等价,这里的*是固定用法,第二次*才表示取值;(见代码)


int main()
{
    int _array[2][3] =    {1,2,3,4,5,6};
    printf("0行首地址和0行0列元素地址: %d , %d\n",_array, *_array); //这里的*_array表示的就是第一个元素的地址(因为是二维数组)
    printf("0行首地址和0行0列元素地址: %d, %d\n",&_array[0], *(_array+0)+0);
    printf("1行0列的元素地址:          %d, %d\n",_array[1],*(_array+1));
    printf("0行1列的元素地址:          %d, %d\n",&_array[0][1],*(_array+0)+1);
    printf("1行1列的元素值:            %d, %d\n",_array[1][1],*(*(_array+1)+1));
    return 0;
}

——————————编程路上,你我为伴——————————
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值