A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 勇猛的小黑 中级黑马   /  2015-11-10 17:29  /  565 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
       
        二维数组在内存中是按行存储的。如下图所示,  ‘
        二维数组可以看做是一个特殊的一维数组,例如数组a就可以看做是一个有三个元素a[0],a[1],a[2]的数组(所以a+1指向第二行a[1]行(a+1代表指向第二行的指针
                                                                                                                                                                                                                                                        *(a+1)才代表第二行的首地址))
                                行指针代表的是指向这一行的首地址的指针
                                列指针就是这一列的首地址 eg:a[0]又是一个数组包含四个元素a[0][0],a[0][1],a[0][2],a[0][3]
                                                                                        a[0]代表第一列的首地址,即a[0][0]的地址。
                                                                                        a[0]+1 代表第二列,即a[0][1]所在列 2,6,10那一列
                                注意:行指针是指向这一行首地址的指针,而列指针就是这一列的首地址
                                        *行指针 == 这一行的首地址                  *列指针  == 这一列的第一个元素的值。
                                        **行指针 == 这一行的第一个元素的值
                a[0]   1 2  3  4
                a[1]   5 6  7  8
                a[2]   9 10 11 12
        a代表指向第0行的首地址的指针                即*a代表 1的首地址。
        a+1代表指向第1行的首地址 的指针   即 *(a+1)代表5的首地址       
        a+2代表第二行的首地址。  即  *(a+2)9的首地址
       
        a[0]代表第0列的首地址    即1
        a[0]+1 代表第1列的首地址 即2
        a[0]+2 代表第2列的首地址 即3
        a[0]+3 代表第3列的首地址 即4

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马