Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Определение функций






  returnDataType functionName(dataType argName1, dataType argName2,..., dataType argNameN) { // тело функции }

Рассмотрим определение функции на примере функции sum.

    // определение функции, которая суммирует два целых числа и возвращает их сумму int sum(int num1, int num2) { return (num1 + num2); }

В языках C и C++, функции не должны быть определены до момента их использования, но они должны быть ранее объявлены. Но даже после всего этого, в конце концов, эта функция должна быть определена. После этого прототип функции и ее определение связываются, и эта функция может быть использована.

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

// объявление функции суммирования

int sum(int, int);

 

// определение функции суммирования

int sum(int num1, int num2)

{

return (num1 + num2);

}

 

23. Си. Функции: формальные и фактические параметры

Параметр в программировании — принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. То есть вызывающий код передает аргумент в параметр, который определен в члене спецификации функции.

Важно различать:

 

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

фактический параметр — аргумент, передаваемый в функцию при ее вызове;

Пример на языке Си:

 

// Описание функции. int a - формальный параметр, имя параметра может отсутствовать.

int myfunction(int a);

 

// Определение функции. int b - формальный параметр, имя параметра может не совпадать с указанным при объявлении функции.

int myfunction(int b)

{

return 0;

}

 

int main()

{

int c=0;

myfunction(c); // Вызов функции. c - фактический параметр.

return 0;

}

 

24. Си. Функции: области видимости имен

В программировании, область видимости (англ. scope) обозначает область программы, в пределах которой идентификатор (имя) некоторой переменной продолжает быть связанным с этой переменной и возвращать её значение. За пределами области видимости тот же самый идентификатор может быть связан с другой переменной, либо быть свободным (не связанным ни с какой из них).

В большинстве языков программирования область видимости переменной определяется местом её объявления. Кроме того, область видимости может задаваться явно с помощью классов памяти или пространств имён.

В языках, поддерживающих структурное программирование, переменные обычно разделяются на два типа по области видимости:

локальные переменные — объявляются внутри функции и недоступны снаружи неё;

глобальные переменные — объявляются вне всех функций и доступны отовсюду

В объектно-ориентированном программировании каждый объект содержит три специфические области видимости:

Закрытая (англ. private) — переменную можно использовать только в реализации объекта;

Общедоступная (англ. public) — переменную можно использовать при использовании и инициализации объекта;

Защищённая (англ. protected) — переменную можно использовать только в реализации объекта или его потомка.

Области видимости определяются и для языков разметки. Например, в HTML областью видимости имени элемента управления является форма (HTML) от < form> до < /form>.

Пример в СИ:

// Начинается глобальная область видимости.

int countOfUser = 0;

 

int main()

{

// С этого момента объявляется новая область видимости, в которой видна глобальная.

int userNumber[10];

}

#include < stdio.h>

int a = 0; // глобальная переменная

 

int main()

{

printf(" %d", a); // будет выведено число 0

{

int a = 1; // объявлена локальная переменная а, глобальная переменная a не видна

printf(" %d", a); // будет выведено число 1

{

int a = 2; // еще локальная переменная в блоке, глобальная переменная a не видна, не видна и предыдущая локальная переменная

printf(" %d", a); // будет выведено число 2

}

}

25. Си. Массивы: объявление массивов

Массив – это совокупность данных, которая обладает следующими свойствами: все элементы массива имеют один и тот же тип; массив имеет одно имя для всех элементов; доступ к конкретному элементу массива осуществляется по индексу (индексам).

1. Объявление массива

Объявление массива имеет следующий синтаксис:

< спецификация типа> < имя> [< константное выражение> ];

< спецификация типа> < имя> [ ];

Здесь квадратные скобки являются элементом синтаксиса, а не признаком необязательности конструкции.

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

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

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

< спецификация типа> < имя> [< константное выражение> ][< константное выражение> ]...;

Каждое константное выражение определяет количество элементов в данном измерении массива, поэтому объявление двумерного массива содержит два константных выражение, трехмерного – три и т.д.

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

Примеры объявлений массивов:

int x[10]; // Одномерный массив из 10 целых чисел. Индексы меняются от 0 до 9.
double y[2][10]; // Двумерный массив вещественных чисел из 2 строк и 10 столбцов.





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.