码迷,mamicode.com
首页 > 编程语言 > 详细

C语言之二维数组与指针

时间:2019-04-21 15:54:04      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:for   数组指针   add   二维数组与指针   内存   turn   argv   har   style   

二维数组:

char a[2][3];

二维数组实质上也就是一维数组,a[2][3]可看做一个2个元素的一维数组,这2个元素又是另一个数组,在内存中,它的排布如下:

技术图片

#include "stdio.h"

int main(int argc, char *argv[])
{
    char a[2][3]={{1,3,9},{2,4,8}};

    for(int i=0; i<2;i++)
        for(int j=0;j <3;j++)
        {
            printf("a[%d][%d]=%d\n", i, j, a[i][j]);
        }
    for(int i=0; i<2;i++)
        for(int j=0;j <3;j++)
        {
            printf("a[%d][%d] Addr=0X%X\n", i, j, (int)&a[i][j]);
        }
    return 0;
}

技术图片

数组指针:

char a[2][3]={{1,3,9},{2,4,8}};
char (*p)[3]=a;  //a为一维数组的数组名,类型为char (*)[3]
char *p=a[1];    //a[1]为二维数组的数组名,即{2,4,8}数组的首地址,类型为char *
char (*)p[2][3]=&a //&a为整个数组的首地址,类型为char (*)[2][3]

 

C语言之二维数组与指针

标签:for   数组指针   add   二维数组与指针   内存   turn   argv   har   style   

原文地址:https://www.cnblogs.com/hwli/p/10745446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!