指针是C语言程序设计的精髓,当使用指针时,数组等调用变得十分简单
例如定义一个数组 a[10]整型数组,a则代表a[0]的地址,a相当于&a[0],a+1则代表a[1]的地址变量
因此取数组中第i个元素时,只需要a[i]=*(a+1)。
下面的简单小例子,解释指针在数组中的应用:
一位数组指针使用方法:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for exmple 1
#include <stdio.h>
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int *pointer;
pointer=&a[5];
printf("\n%d\n",pointer);
printf("%d\n",pointer+1);
printf("%d\n",a+5);
printf("%d\n",*(a+5));
return 0;
}
输出结果
for exmple 2
使用指针来输出数组,用指针变量直接指向元素,不必每次都重新计算地址,像p++这种自家操作是比较快的,大大的提高计算效率。
#include <stdio.h>
int main()
{
int a[10];
int *p,i;
for (i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
for (p=a;p<(a+10);p++)/*此处的p++不能换成a++,a只能代表a[]数组中第一个元素的地址,他是一个指针型的常量*/
{
printf("%d\n",*p);
}
return 0;
}
for exmple 3
对例子2数组的写入也是用指针