Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Передача массива в функцию



Обработку массивов удобно организовывать с помощью специальных функций. Если в функцию передается массив, то на самом деле внутрь функции попадает только адрес массива. Фактически в функцию передаются: 1) адрес массива, 2) размер массива. Исключение составляют функции обработки строк, в которые передаются только адреса.

Обычно параметры функций в языке Си передаются как копии. Если внутри функции произойдет изменение значения параметра, то это никак не отразится на его первоначальном (оригинальном) значении. С массивами дело обстоит иначе. Если в функцию передается адрес массива (адрес нулевого элемента), то все операции, выполняемые в функции над массивом, производятся над оригиналом; поэтому исходный массив может быть случайно поврежден.

Рассмотрим пример программы, в которой функция modify увеличивает на 1 значение каждого элемента массива data.

#include <std io .h>  
void modify(i { int i; nt * a, int size)
     
for (i=0; i< size, • i++)
*(a+i) =* (a+i) + 1;
/* a[i] }   a[i]+l;V

main () г            
  int data[] int i; = {-12, 14, -io, 16, 22} ,
  printf("\n Исходный массив: ");    
  for (i=0; i<5; i++)          
  printf( "\n data[ %d] =%d"/ if data [i]);
  modify(dat a, 5);          
  printf ("\n Модифицированный массив: ");
  for(i=0; i <5; i++)          
} printf( "\n data[ %d] = =%d", if data [i]);




Дата публикования: 2014-11-04; Прочитано: 274 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...