polevoi_cpp_2013_spring_lecture_02
.pdf
Ссылка (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 |
