Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP (1).doc
Скачиваний:
0
Добавлен:
27.12.2019
Размер:
27.66 Mб
Скачать

12)Описание и определение функций

Определение функции должно располагаться в глобальной области видимости, до начала функции main. Определение функции состоит из заголовка и тела. Заголовок функции включает в себя: тип возвращаемого значения, идентификатор или имя функции, список аргументов или параметров, тело функции. После того как создано определение функции, её можно вызвать.

[тип] имя([список формальных параметров])

описания формальных параметров;

{описания;

операторы;}

13)Назначение прототипа функции

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

Пример: int foo(int n);используется для проверки.

#include <stdio.h>

/*

* При реализации этого прототипа компилятор выдаст сообщение об ошибке

* в main(). Если он будет пропущен, то и сообщения об ошибке не будет.

*/

int foo(int n); /* Прототип функции */

int main(void) /* Вызов функции */

{

printf("%d\n", foo()); /* ОШИБКА: у foo отсутствует аргумент! */

return 0;

}

int foo(int n) /* Вызываемая функция */

{

if (n == 0)

return 1;

else

return n * foo(n - 1);

}

14)Операторы

15)Массивы-конечная совокупность данных одного типа

Имя массива – адрес нулевого элемента

Можно использовать явную и неявную инициализацию(int x[10], int x[3]={1,2,3})

Z[100]={1,2,3} если описание не полное, то остальные обнуляются. Можно задавать неявно z[]={1,2,3,4,5}; <- (z[5])

Многомерные массивы

double d[2][3]; d[0][0]=1.76; double d[2][3]={1,2,3,4,5,6}; char ch[ ][2]={‘A’, ‘B’, ‘C’, ‘D’};

Для многомерных массивов неявно можно задавать только первую размерность.

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

Функция может инициализировать массив, прибавить к массиву значения или вывести элементы массива на экран. Когда вы передаете массив в функцию, вы должны указать тип массива. Нет необходимости указывать размер массива. Вместо этого вы передаете параметр например number_of_elements, который содержит количество элементов в массиве void some_function(int array[], int number_of_elements);

20)Передача параметров в функции

В C++ можно передавать параметры в функцию по значению (func2) и по ссылке (func1):

void func1 ( A& a ); void func2 ( A a );

Здесь кроется засада: в func2 внутрь функции передается на самом деле не a, а его копия.

Пример,swap

void swap (int x; int y) {

int tmp=x; x=y; y=tmp; }

int main(){

int a=5, b=10;

swap (a,b);

printf(“a=%d\t b=%d\n”,a,b);

}

При вызове функции swap создаются 2 локальные переменные(изменяются лок. переменные). Чтобы ф-ия изменяла внешние переменные переменные должны быть или глобальные,либо должны передавать их адреса.

22)Указатели – это переменная, которая хранит адрес другой переменной или некоторой функции. Указатель не является самостоятельным типом, он всегда связан с каким-либо другим типом.

Значение указателя это целое число, множество допустимых значений этого множества адресов. Множество допустимых значений определяется видом указателя

  1. нетипизированный

  2. типизированный на данные

  3. указатель на функцию

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]