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

polevoi_cpp_2013_spring_lecture_02

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

Объявление в for-инструкции

переменную можно объявить в части инициализации for-инструкции

область видимости простирается до конца for-инструкции

пример:

for (int i(0); i < n; ++i)

16.02.2013

21

Пример (for-инструкция)

for (int i(0); i < n; ++i)

{

// основная работа

}

for (int i(n - 1); i >= 0; i -= 2)

{

// основная работа

}

16.02.2013

22

Пример (while-инструкция)

bool isReady(false); while (!isReady)

{

// основная работа

}

16.02.2013

23

“Бесконечные” циклы

“ в природе” не встречаются

явно вводите и проверяйте управляющую выполнением цикла переменную

16.02.2013

24

Логическая стройность

избегайте длинных блоков

избегайте глубокой вложенности

упрощайте сложные выражения и конструкции

сначала делайте основную работу

16.02.2013

25

Правило одной точки выхода

у функции д.б. одна точка выхода

может нарушаться при обработке входных параметров

16.02.2013

26

Комментарии

актуальные

понятные

достаточные

не должны дублировать конструкции языка

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

16.02.2013

27

l-value

именующее выражение, ссылается на объект (м.б. const)

может стоять в левой части оператора присваивания (если не const)

пример:

int num(1); num = 5;

*(p + 15)

16.02.2013

28

r-value

• не l-value

пример:

5

//< литерал

a + b //< временные объекты

new int

//< новый объект

string(“0”) //< временный объект

s.size()

//< вызов функции

16.02.2013

29

Указатель (pointer)

тип Т* - тип “указатель на Т”

переменная типа Т* содержит адрес объекта типа Т

разыменование (косвенное обращение)

пример:

char с1 = ‘а’;

char* p = &с1; //< адрес переменной с1

char с2 = *p; //< с2 == ‘а’

16.02.2013

30