- •Рецензенты:
- •Лекция 1 Основные понятия языка с
- •Первая программа
- •Переменные языка с
- •Имя переменной
- •Объявление константы
- •Операции языка с
- •Лекция 2 Операторы языка с Условный оператор
- •Оператор switch
- •Циклы Цикл for
- •Циклы while и do-while
- •Оператор безусловного перехода
- •Использование операторов break, continue и goto в циклах
- •Операция условие ?
- •Лекция 3 Массивы
- •Инициализация массивов
- •Массивы символов. Строки
- •Функции для работы со строками
- •Лекция 4 Указатели
- •Объявление указателей
- •Операции над указателями
- •Связь указателей и массивов
- •Массивы указателей
- •Инициализация указателей
- •Лекция 5 Функции языка с
- •Объявление функции
- •Оператор return
- •Прототипы функций
- •Функции c произвольным числом параметров
- •Область действия и область видимости переменной
- •Классы памяти
- •Параметры и аргументы функции
- •Лекция 6 Типы, определяемые пользователями
- •Структура
- •Перечислимый тип
- •Переименование типов-typedef
- •Лекция 7 Модели памяти и препроцессор языка с Модели памяти
- •Препроцессор языка с
- •Директива #define
- •Список рекомендуемой литературы
- •Оглавление
- •Программирование на языках высокого уровня: с
- •428015 Г.Чебоксары, Московский просп., 15
Использование операторов break, continue и goto в циклах
Напомним основные сведения о данных операторах.
Оператор break имеет два применения. Первое - окончание case в операторе switch. Второе - немедленное окончание цикла, не связанное с проверкой обычного условия окончания цикла. Когда оператор break встречается внутри оператора цикла, то происходит немедленный выход из цикла и переход к выполнению оператора, следующего за оператором цикла.
Если оператор continue встретился в операторе цикла, то он передает управление на начало следующей итерации цикла. В циклах while и do-while - на проверку условия, а в цикле for - на приращение. Этот оператор необходим, если вы хотите закончить текущую итерацию цикла и не выполнять оставшиеся операторы, а сразу перейти к следующей итерации цикла.
Оператор goto служит для выхода из вложенных циклов или для перехода к нужному месту программы. Этот оператор тесно связан с таким понятием, как метка. Метка в С++ - это идентификатор, за которым следует двоеточие. Например,
goto exit;
…
exit: printf(“конец программы")
Проиллюстрируем использование указанных операторов.
Пpoграмма 2.4:
#include-"'stdio.h>
void main() {
int i;
for(i=0; i<5; i++) {
printf("i=%d\n'', i);
if(i==3) goto out_of_loop; }
out_of_lоор: printf("This is the end of the 1st loop i= %d \n", i);
for(char c:=='a;;c++)
if(c==’d’) {printf("end of the loop for c=%c\n", c);break;}
Результат выполнения программы следующий:
i=0
i=1
i=2
i=3
This is the end of the 1st loop i=3
end olthe loop for c=d
Операция условие ?
Операция условие - единственная операция языка С, имеющая три операнда. Эта операция имеет вид: (выражение1) ? (выражение2): (выражение3) Например, x=flag?y:y*y
Эта операция эквивалентна следующей записи
if (flag) x=y
else x=y*y;
То есть если значение выражения 1 истинно (больше 0), то вычисляется выражение 2, которое и является в этом случае результатом операции. Если же значение выражения 1 – ложно (равно 0), то вычисляется выражение 3, которое и будет являться результатом операции.
Лекция 3 Массивы
Массив - одна из наиболее простых и известных структур данных. Под массивом в языке С понимают набор данных одного и того же типа, собранных под одним именем. Каждый элемент массива определяется именем массива и порядковым номером элемента, который называется индексом. Индекс в языке С всегда целое число.
Основная форма объявления массива размерности N такова:
Тип <имя массива> [размер1] [размер2]...[размерN].
Например,
int с[6] - объявлен одномерный массив с, состоящий из 6 целых элементов;
float d[2][4] - объявлен двумерный массив d, состоящий из 8 действительных элементов;
long double game[100] - объявлен одномерный массив game, состоящий из 100 целых элементов.
Размер массива в языке С может задаваться константой или константным выражением. Нельзя задавать массив переменного размера. Для этого существует отдельный механизм, называемый динамическим выделением памяти.
В языке С индекс элемента массива всегда начинается с нуля. Когда говорят о первом элементе массива, то имеют в виду элемент с индексом 0. Если объявляют массив int c[100], это значит, что массив содержит 100 элементов от с[0] до с[99]. Для одномерного массива легко подсчитать количество байт, занимаемых этим массивом в памяти по формуле:
количество байт = размер базового типа * количество элементов
или
количество байт= sizeof(c[0])*100.
В языке С под массив всегда выделяется непрерывное место в оперативной памяти.
В языке С не проверяется выход индекса за пределы массива. Если массив c[100] описан как целочисленный массив, имеющий 100 элементов, а в программе указано с[200], то сообщение об ошибке не будет выдано, а в качестве значения элемента с[200] будет выдано некоторое число, занимающее соответствующие 2 байта.
