Лабораторная работа: Массивы и указатели в языке программирования Си
for (i=0; i<6; i++)
printf("%d",a[i]); /*вывод массива обычным способом*/
for (p=&a[0];p<=&a[5];p++)
printf("%d",*p); /*вывод массива с использованием указателя*/
for (p=&a[0],i=0; i<6; i++)
printf("%d",p[i]); /*еще один вариант с использованием указателя*/
}
Дадим еще некоторые пояснения. Операция р++ увеличивает значение указателя на единицу. Если p=&a[i], то после операции р++ в р содержится адрес элемента a[i+1].
Пример 5. Найти среднее арифметическое массива, состоящего из шести элементов, с использованием указателя.
#include <stdio.h>
int a[]={10,20,30,40,50,60}
main()
{int i,*p;
float s;
p=a; /*указатель получает значение адреса нулевого элемента массива*/
for (s=0,i=0; i<6; i++)
s+=*(p+i); /*получение суммы элементов массива*/
s=s/6; /*среднее арифметическое массива*/
printf("%f",s);
}
Пример 6. Решить задачу, приведенную в примере 1, с использованием указателя.
#include <stdio.h>
main()
{float s[10];
int *p,i;
for (i=0;i<10;i++)
scanf("%f",s[i]);
p=&s[9]; /*указатель получает значение адреса последнего элемента массива*/
for (i=0; i<10; i++)