数组元素的指针:
数组元素的地址
引用数组元素的方法:
下标法:数组名[序号],如a[3]
指针法:通过只想数组元素的指针找到所需元素。
指针法能够使目标程序质量高(占内存少,运行速度快)。
例、输出数组中的元素
#include<stdio.h>
void main()
{
int *p,*q,a[5],b[5],i;
p=&a[0]; //将数组元素赋值给指针
q=b; //将数组元素赋值给指针
printf("输入数组a:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("输入数组b:\n");
for(i=0;i<5;i++)
scanf("%d",&b[i]);
printf("输出数组a:\n");
for(i=0;i<5;i++)
printf("%-3d",*(p+i)); //*(p+i)表示数组元素中的各元素,p+i表示数组元素的地址
printf("\n");
printf("输出数组b:\n");
for(i=0;i<5;i++)
printf("%-3d",*(q+i));
printf("\n");
}
p=&a[0]; 和 p=a; 都表示将数组首地址赋给指针变量。
*(p+n) 和 *(a+n)表示数组中的各元素。
#include<stdio.h>
void main()
{
int *p,*q,a[5],b[5],i;
p=&a[0];
q=b;
printf("请输入数组a:\n");
for(i=0;i<5;i++)
scanf("%d",p++);
printf("请输入数组b:\n");
for(i=0;i<5;i++)
scanf("%d",q++);
p=a; //将指针变量p和q重新指向数组a和数组b在内存中的起始位置,如果没有该语句,直接使用*p++输出,将会产生错误
q=b;
printf("输出数组a:\n");
for(i=0;i<5;i++)
printf("%-3d",*p++);
printf("\n");
printf("输出数组b:\n");
for(i=0;i<5;i++)
printf("%-3d",*q++);
printf("\n");
}