Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
S_otvety_na_ekzamen.doc
Скачиваний:
2
Добавлен:
14.04.2019
Размер:
130.56 Кб
Скачать

31.Область существования имени. Виды областей существования имени

1) БЛОК - это фрагмент программы, заключённый в фигурные скобки { }

Тело любой функции является блоком. Имя функции также имеет область существования "блок". Область существования "блок" распространяется и на вложенные блоки.

2) ФУНКЦИЯ. Эту область существования имеют только имена меток перехода, используемые оператором goto:

void f (){….      ...      goto lab;      ...      {... lab: ...}      ...      } 3)ПРОТОТИП ФУНКЦИИ- объявление функции, не являющееся её определением и имеющий, вид:

int F(int a, double b, char* str);

Область существования "прототип" заключена между открывающей и закрывающей круглыми скобками.

4)ФАЙЛ- имеют имена, объявленные вне любого блока и класса. Такие имена называют глобальными. Глобальные имена определены от точки их объявления и до конца файла, где встретилось их объявление. Примером таких имён являются имена функций.

#include      int a, b, c[40];       // Глобальные имена;      int f1()       // локальное имя f1;      {int i;       // локальное имя;      ...      }      int count;       // глобальное имя;      void f2() { ... }       // глобальное имя f2.

5)КЛАСС. Такую область существования имеют имена, объявленные в классах. Эти имена определены во всем классе, в котором они объявлены, независимо от точки их объявления.

32.Область видимости имени. Операция разрешения контекста.

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

Если скрытым именем является глобальное имя функции или объекта, то обратиться к нему можно, используя операцию разрешения контекста ::.

int i=5;     // Глобальная переменная;      void main (){      int i=1;     // локальная переменная.      i++;      ::i++;      cout<< "i="<< i<< ", глобальное i="<< ::i<< ".\n";      }

Здесь будет напечатано

i=2, глобальное i=6.

С помощью операции :: нельзя обратиться к скрытому локальному объекту.

33. Классы памяти.

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

1)auto(по умолч.)-освобождает переменную при выходе из блока

2)static-перем существует до конца выполнения программы

3)extern-внешняя переменная

4)register- перем существует только локально

34.Структуры. Элементы структуры. Массивы структур.

Структура — это совокупность переменных, объединенных под одним

именем.

Переменные, из которых состоит структура, называются элементами структуры.

Пример структуры:

struct date { // объявление нового типа данных

int day;

int month;

int year;

int week_day;

char mon_name[4];

};

date d1,d2; // объявление переменных типа date

d1.day = 20;

d1.month = 5; // доступ к отдельным элементам структуры

Структуры можно присваивать:

d2 = d2;

Структуры нельзя сравнивать.

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

person list[100];

Это выражение создаст 100 наборов переменных, каждый из которых организован так, как определено в структуре person

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