Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

polevoi_cpp_2013_spring_lecture_02

.pdf
Скачиваний:
6
Добавлен:
20.04.2015
Размер:
160.87 Кб
Скачать

Ссылка (reference)

альтернативное имя переменной

инициализируется при объявлении

пример:

T var(0);

T& ref = var;

16.02.2013

31

Массив

составной пользовательский тип

тип T[size] – тип “массив из size элементов типа Т”

элементы индексируются от 0 до size-1

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

пример:

int divisors[12];

16.02.2013

32

Инициализация массива

списком инициализаторов

размер массива м.б. вычислен по списку инициализации

не указанные в списке значения инициализируются по умолчанию

используйте T arr[SIZE] = {0};

пример:

int ar1[] = {l, 2, 3, 4};

int ar2[32] = {l, 2};

int ar3[MAX_NUMS] = {0};

16.02.2013

33

Указатели и массивы

имя массива – указатель на первый элемент

доступ через указатели или оператор []

пример:

p = &v[0]; //< или p = v;

v[i] == *(p + i)

16.02.2013

34

Объявление функции

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

имя функции

список аргументов

тип

имя

пример:

int swap(const int lhs, const int rhs);

16.02.2013

35

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

объявление в котором присутствует тело

типы аргументов объявления и определения должны совпадать

рекомендуется поддерживать соответствие имен аргументов (могут не совпадать)

16.02.2013

36

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

пример:

int min(const int lhs, const int rhs)

{

return (lhs < rhs )? lhs: rhs;

}

int maxTr(const int lhs, const int rhs, cosnt int)

{

return (lhs > rhs )? lhs: rhs;

}

16.02.2013

37

Передача аргументов

по значению

по указателю

по ссылке

пример:

int min(int lhs, int rhs)

{

return (lhs < rhs )? lhs: rhs;

}

16.02.2013

38

Аргумент указатель

пример:

bool swap(int* pLhs, int* pRhs)

{

if ((0 == pLhs) || (0 == pRhs))

{

return false;

}

int newLhs(*pRhs); *pRhs = *pLhs; *pLhs = newLhs; return true;

}

16.02.2013

39

Аргумент ссылка

пример:

void swap(int& lhs, int& rhs)

{

int newLhs(rhs); rhs = lhs;

lhs = newLhs;

}

16.02.2013

40