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

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

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

#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;
}

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

发布了29 篇原创文章 · 获赞 5 · 访问量 689

猜你喜欢

转载自blog.csdn.net/ever_promise/article/details/104251238