作者在 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)指向数组的指针作为函数参数