Pointer and Array

 

1.各种指针的定义:

  • int *pi ; //pi是指向int型变量的指针

  • float *pi; //pi是指向float型变量的指针

  • char *pc; //pc是指向char型的变量指针

  • char (*pa)[3]; //pa是指向一维数组的指针

  • int (*pf)();//指向函数pf的指针,函数的返回值类型为int型数值

  • int **pp;//指向指针的指针,即二级指针

 

2.有关指针和数组

  • 一维数组

    例如:int a[5];下标方法表示为:a[i],其中,i=0,1,2,3,4;

用指针的方法表示为:*a+i

  • 二位数组

 例如:int a[2][5];

 其中,有10int型变量.下表方法表示为:a[i][j],其中,i=0,1;j=0,1,2,3,4;

 

 用指针方法表示为:

1.用指针表示它的行和列

**a+i+j

2.行数组用下标表示,列数组用指针

*(a[i]+j)

3.行数组用指针表示,列数组用下标表示

(*a+i)[j]

4,按二维数组各个元素在内存中的存放顺序,用指向数组首元素的一级指针表示

*(&a[0][0]+5*i+j)

 

------------可以将一个二维数组看作一个一维数组,而它的元素又是一个一维数组----------

例如:

a[2][5]可以看做是有2个元素的一维数组,即称行数组,而每个元素又是具有5个元素的一维数组,即称为列数组。

因此,a[2][5]可以看作是2个元素的一维数组,其中每个元素又是具有5个元素的一位数组。

  • 三维数组

同理如二维数组。

可以将每个元素看作为一维数组的二维数组,而二维数组可以看作是每个元素为一维数组的一维数组。 将三维数组理解为有行数组,列数组,组数组组成,它们都是一维数组。

例如:

int a[3][5][7];

其中, i=0,1,2; j=0,1,2,3,4; k=0,1,2,3,4,5,6;

各种指针及下标表示方法如下:

  1. 用指针表示它们的行数组,列数组,组数组表示

    ***(a+i)+j+k

  2. 用指针表示行数组。列数组,组数组用下标表示

    *(*(a[i])+j)+k), 其它同理。

 

 

转载于:https://www.cnblogs.com/FCWORLD/archive/2010/10/04/1841804.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值