Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_ekzamen_CPP.doc
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
311.81 Кб
Скачать
  1. Операторы распределения памяти.

В языке имеется 2 типа объектов: статические и динамические.

Под статические объекты память выделяется во время компиляции программы и её размер не может быть в дальнейшем изменён.

int c; //4 байта

int c[10]; //10 по 4 байта

char t; //1 байт

char t[10]; //10 по 1 байту

Динамические – объекты, память под которые выделяется в процессе выполнения программы. Память выделяется из кучи. Для выделения памяти, а также для возвращения выделенной памяти обратно в кучу используются операторы распределения памяти: new и delete.

new тип,

где тип является именем встроенного или определённого программистом типа данных.

delete указатель,

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

Наиболее часто эти операторы используются для динамического выделения памяти массивам и строкам. Пример динамической переменной:

int *p;

p = new int;

*p = 10;

Динамический массив:

int *p;

p = new int[10];

Динамические строки:

char *st;

st = new char[20];

  1. Объявление typedef.

Существуют типы данных или типы, определённые пользователем, можно переименовывать с помощью объявления typedef. Имеет формат:

typedef имя_типа список_идентификаторов

typedef – ключ-слово; имя_типа является именем существующего типа данных или типа, определённого пользователем; списко_идентификаторов содержит новые имена существующего типа данных, которые перечисляются через запятую.

Подобное переименование используется с целью придания именам типов более осмысленных названий:

typedef salary;

salary s = 1000;

Можно определить синонимы для массива:

typedef int arr[10];

arr a;

  1. Оператор sizeof.

Для определения длины как встроенных типов данных, так и типов данных, определённых пользователем, используется оператор sizeof, который имеет синтаксис:

sizeof выражение

или

sizeof (тип)

Оператор sizeof возвращает целочисленную константу без знака, которая равна длине операнда в байтах. Не допускаются операнды, которые имеют тип: битовые поля, функции, тип void, массивы неопределённого размера, перечисление, структура или объединение с неопределёнными элементами.

Если операндом оператора sizeof является массив или структура, то в результате получаем длину этого массива или структуры:

int n = 0;

double d = 0;

char c = ‘c’;

char a[10] = “array”;

printf (“%d”, sizeof n); //4

printf (“%d”, sizeof d); //8

printf (“%d”, sizeof a); //10

printf (“%d”, sizeof (int)); //4

  1. Передача аргументов по умолчанию.

В прототипе функции или в её определении можно указать значения, которые задаются параметром по умолчанию. В этом случае, если при вызове функции некоторые или все аргументы пропущены, то компилятор подставит вместо них значения, заданные по умолчанию. Если некоторый параметр имеет значение по умолчанию, то значения по умолчанию должны иметь также все параметры, которые расположены после него. Соответственно если при вызове функции какой-то аргумент опускается, то должны опускаться и все аргументы после него:

# include <stdio.h>

void print (int i; int j = 1; int k = 2)

{printf (“%d\n%d\n%d\n”, i, j, k);}

void main ()

{print (5, 7, 9); //5, 7, 9

print (0); //0, 1, 2

print (1,3); //1, 3, 2

}

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