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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Mal 中级黑马   /  2015-7-27 21:52  /  410 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a[3][4]={
    {1,3,5,7},
    {9,11,13,15},
    {17,19,21,23}
};

a代表第0行首地址
a+1代表第1行首地址
a+2代表第2行首地址
a+i代表行号为i的行首地址(按行变化)

a[0]代表a[0][0]的地址
a[0]+1代表a[0][1]的地址
a[0]+2代表a[0][2]的地址
a[0]+3代表a[0][3]的地址

int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
访问 第一行的第一个元素地址表示:
a + 1 =  &a[1]  =  a[1]  =  &a[1][0]  =  *(a + 1)

获取第一行的第一个元素值的方式:
*a[1] =  a[1][0] = **(a + 1)

for (int i = 0,i<3,i++){
   
    for (int j = 0,j<4,i++){
        
        printf("%d",*(a[i]+j)); // a[i]第i行的地址  指向第i行第一个元素的地址
                                //  a[i]+j   指向第i行第j个元素的地址
                                //  *a([i]+j) 取出指向第i行第j个元素的地址对应的内容
        
        // *(pa[i]+j) = *(*(pa+i)+j)
        
    }
}

0 个回复

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