指针与数组

作者在 2008-11-01 17:33:31 发布以下内容

1.一维数组与指针

(1)int *p;int a[10];

     p=a;(或者p=&a[0];)

 (2)a[i]<=>*(a+i)

 (3)通过指针变量输出a数组的10个元素

    #include<stdio.h>

    void main()

    {int *p,i;

     int a[10];

     p=a;

     for(i=0;i<10;i++)

      scanf("%d",p++);

     printf("\n");

     p=a;            /*由于上面的p++使得指针指向最后一个元素,必须使他指向第一个元素*/

     for(i=0;i<10;i++)

     printf("%d",*p++);

     }

2.二维数组与指针

(1)a是指向一维数组(指向行元素)的指针

     *a是指向列的元素的指针

     **a是0行0列的元素

(2)a是代表二维数组的首元素的地址(这里的首元素是指第0行),0行的首地址

     a[0],a[1],a[2]为一维数组名

     a[1],*(a+1)是指1行0列的地址

     &a[1],a+1是指第1行的首地址

     a[1]+2,*(a+1)+2,&a[1][2]是指1行2列的地址

     *(*(a+1)+2),*(a[1]+2),a[1][2]是指1行2列的元素

(3)计算a[i][j]在数组中的相对位置的计算公式i*m+j  

    (for example:a[2][3]<=>*(p+11))

(4)指向数组元素的指针变量

(5)指向数组的指针作为函数参数

     

C语言 | 阅读 3285 次
文章评论,共0条
游客请输入验证码
浏览77327次