Double Srednee ( int n )

{

static int Sum = 0, Count = 0;

++ Count;

Sum += n;

return double ( Sum ) / Count;

}

 

Локальные static-переменные Sumи Count инициализируются значениями 0 один раз при первом вызове функции Srednee. Затем их значения изменяются, и эти измененные значения после завершения работы функции сохраняются до ее следующего вызова.

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

Внешние static-переменные определяются вне функций. Они, так же как и локальные static-переменные имеют глобальное время жизни. Но их область видимости ограничена файлом проекта, в котором они определены (они могут быть доступны только в функциях, расположенных в этом же файле и не видны из других файлов проекта). Таким образом, их можно рассматривать как глобальные переменные с областью видимости, ограниченной файлом, в котором они определены.

Спецификатор static можно применять и к функциям.

Многофайловые проекты

 

Напишу позже!!!

Структуры, объединения, перечисления

Все данные, с которыми работает программа можно разделить на две группы:

· простые;

· структурированные.

Из рассмотренных ранее типов данных к структурированным типам относятся массивы, остальные типы данных – простые – не имеющие внутренней структуры.

Структуры и объединения относятся к структурированным (конгломератным) типам данных, определяемых программистом.

Структуры

Определение структур

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

Для работы с некоторой структурой в программе необходимо:

1. описать тип данных этой структуры;

2. определить переменные этого типа для хранения соответствующих данных в памяти.

Рассмотрим пример: сведения о студенте содержат следующие данные:

· фамилия - Fam;

· имя - Name;

· год рождения - Year;

· пол - Sex;

· средний балл - Grade.

Представим все эти данные в виде единой структуры. Введем новый тип данных (назовем его t_Student) для описания этой структуры:

 

struct t_Student {

char Fam [20],

Name [16];

Short Year;

Bool Sex;

Float Grade;

};

Описание структуры начинается ключевым словом struct. Каждая входящая в структуру переменная называется членом (полем, элементом) структуры и описывается типом данных и именем. Поля структуры могут быть любого типа данных. Их количество не лимитировано.

Вся эта конструкция является инструкцией языка программирования, поэтому после нее всегда должен ставиться символ ;.

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

 

t_Student St1, St2; //Определены две переменные типа t_Student

 

Определение переменных можно осуществить одновременно с описанием типа данных структуры:

 

struct t_Student {

char Fam [20],

Name [16];

Short Year;

Bool Sex;

Float Grade;

} St1, St2;

 

Все поля структурных переменных располагаются в непрерывной области памяти одно за другим. Общий объем памяти, занимаемый структурой, равен сумме размеров всех полей структуры. Для определения размера структуры следует использовать инструкцию sizeof (): sizeof (t_Student) или sizeof (St2).








Дата добавления: 2019-02-07; просмотров: 299;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.