Latest web development tutorials
×

C курс

C Язык учебника C Краткое введение C параметры окружающей среды C Структура программы C Базовый синтаксис C Типы данных C переменная C постоянная C Storage Class C операторы C судья C циркуляция C функция C Обзорное правила C массив C указатель C строка C структура C союз C поле Bit C typedef C Входной и Выходной C грамотность документов C препроцессор C заголовок C Слепки C Обработка ошибок C Рекурсия C Переменный параметр C Управление памятью C Параметры командной строки C Классические 100 случаев

C Стандартная библиотека

C Стандартная библиотека - справочное руководство C Стандартная библиотека - <assert.h> C Стандартная библиотека - <ctype.h> C Стандартная библиотека - <errno.h> C Стандартная библиотека - <float.h> C Стандартная библиотека - <limits.h> C Стандартная библиотека - <locale.h> C Стандартная библиотека - <math.h> C Стандартная библиотека - <setjmp.h> C Стандартная библиотека - <signal.h> C Стандартная библиотека - <stdarg.h> C Стандартная библиотека - <stddef.h> C Стандартная библиотека - <stdio.h> C Стандартная библиотека - <stdlib.h> C Стандартная библиотека - <string.h> C Стандартная библиотека - <time.h>

C передать массив в функцию

C массив C массив

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

Режим 1

Формальный параметр является указателем (вы можете узнать в следующей главе к познанию указателя):

void myFunction(int *param)
{
.
.
.
}

Режим 2

Формальный параметр представляет собой определенный размер массива:

void myFunction(int param[10])
{
.
.
.
}

Режим 3

Формальный параметр представляет собой массив неопределенного размера:

void myFunction(int param[])
{
.
.
.
}

примеров

Теперь давайте посмотрим на следующие функции, что массив в качестве параметра, а также передается еще один параметр, в соответствии с проповедью параметров, средняя доходность для каждого элемента в массиве:

double getAverage(int arr[], int size)
{
  int    i;
  double avg;
  double sum;

  for (i = 0; i < size; ++i)
  {
    sum += arr[i];
  }

  avg = sum / size;

  return avg;
}

Теперь, давайте назовем выше функцию следующим образом:

#include <stdio.h>
 
/* 函数声明 */
double getAverage(int arr[], int size);

int main ()
{
   /* 带有 5 个元素的整型数组 */
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;

   /* 传递一个指向数组的指针作为参数 */
   avg = getAverage( balance, 5 ) ;
 
   /* 输出返回值 */
   printf( "平均值是: %f ", avg );
    
   return 0;
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

平均值是: 214.400000

Как вы можете видеть, функции, длина массива не имеет никакого значения, потому что C не выполняет проверку границ параметры формы.

C массив C массив