Работа с элементами структуры. Ввод и вывод переменных типа структура




Работа с элементами типа структура

Доступ к отдельным элементам экземпляра структуры производится с помощью операции – точки (операция доступа к элементам струтуры).

Пример:

struct vuz

{

char fam [25];

char group [10];

int kod;

}

stud1, stud2;

stud 1 fam = “Иванов”;

stud 2 fam = “Сидоров”;

stud 1 group = “ВПб-01-10”;

stud 2 group = “ВПб-02-10”;

stud 1 kod = 050807;

stud 2 kod = 050907;

Ввод и вывод переменных типа структура.

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

Функции. Прототип и определение функции.

Функция - это самостоятельная единица программы, созданная для решения конкретной задачи. Функция в языке С играет ту же роль, что и подпрограммы или процедуры в других языках. Функциями удобно пользоваться, например, если необходимо обработать один и тот же код программы. Как и переменные, функции надо объявлять (declare). Функцию необходимо объявить до её использования.

Основная форма описания (definition) функции имеет вид:

тип <имя функции>(список параметров)

{

тело функции

}

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

 

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

В качестве примера, рассмотрим следующий прототип функции:

intmyFunction(int n);

Объявление функции называется прототипом функции.

 

В прототипе функции (в C++ прототип обязателен) должны присутствовать:

 

- имя функции;

 

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

 

- тип возвращаемого значения.

 

Формат прототипа тот же, что и у определения функции, но прототип не имеет:

 

- тела функции;

 

- заголовок оканчивается точкой с запятой.

Вызов функции. Способы передачи параметров.

Выполнение вызова функции происходит следующим образом.

Вычисляются выражения в списке фактических аргументов. Затем, если известен прототип функции, тип полученного фактического параметра сравнивается с типом соответствующего формального параметра. Если они не совпадают, то либо производится преобразование типов, либо формируется сообщение об ошибке. Число выражений в списке фактических аргументов должно совпадать с числом формальных параметров, если только функция не имеет переменного числа параметров. В последнем случае проверке подлежат только обязательные параметры. Если в прототипе функции указано, что ей не требуются параметры, а при вызове они указаны, формируется сообщение об ошибке. Происходит присваивание значений или адресов фактических аргументов соответствующим формальным параметрам. Управление передается на первый оператор функции. Выполняются действия, указанные в теле функции. Выполнение оператора return в теле функции возвращает управление и вычисленное значение в вызывающую функцию. При отсутствии оператора return управление возвращается после выполнения последнего оператора тела функции, а возвращаемое значение не определено.

Вызов функции.

Внутри функции могут быть объявлены переменные, как, например, переменные p и i в функции power. Такие переменные называются локальными и они определены только внутри этой функции. Переменные, определенные вне тела любой функции (ранее мы такие переменные вообще не рассматривали) называются глобальными и они определены всюду начиная с места определения и до конца файла. Глобальными переменными можно пользоваться во всех функциях, но с современной точки зрения использовать глобальные переменные рекомендуется как можно реже. Локальные переменные создаются каждый раз при входе в функцию и уничтожаются при выходе из нее. Таким образом, значения, сохраненные в локальных переменных, пропадут после завершения работы функции. В различных функциях можно определять переменные с одним и тем же именем. Это будут различные переменные. Также можно объявлять в функциях переменные, имена которых совпадают с именами глобальных переменных. Тогда будет создана новая локальная переменная, а изменить значение глобальной переменной с таким именем будет невозможно.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: