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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yufanyufan77 中级黑马   /  2015-10-11 21:55  /  883 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*

数组指针

        定义一个指针变量,让这个指针变量指向一位数组的元素

二维数组指针

  行指针,用来指向二维数组的每一行,存放行的首地址

  定义格式:数据类型 (*行指针变量名)

对于二维数组来说他的第一维代表行的首地址,如arr[3][]: arr[0]代表arr[3][]的第一行的首地址;

                                                                                                          arr[1]代表arr[3][]的第二行的首地址;

                                                                                                          arr[3]代表arr[3][]的第三行的首地址;


  指针数组:存放指针的数组,

  int * p[2] = {a[0],a[1]};

  二维数组指针,指向单个变量

  int(*p)[4] = arr;


*/

#include"stdio.h"
int main(void)
{
        int i,j;
        int arr[2][4] = {1,2,3,4,5,6,7,8};
        //定义二维数组指针
        //二位数组指针可以替代数组名来使用
        int(*p)[4] = arr;

        int *pt[2] = { arr[0], arr[1]};
       
        for( i=0; i<2; i++)
        {
                for(j=0; j<4; j++)
                        printf("%4d",*(*( p+i )+j));
        }
        printf("\n");

    for( i=0; i<2; i++)
        {
                for(j=0; j<4; j++)
                        printf("%4d",*(pt[i]+j));
        }
        printf("\n");
}

2 个回复

倒序浏览
支持一下!
回复 使用道具 举报
多谢支持
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马