- •Язык высокого програмирования “с”
- •Переменные и типы переменных.
- •2.1 Типы данных в си
- •Подробное описание типов данных в языке си
- •Комплексные числа в си
- •Логический тип данных в си
- •Операторы объявлений
- •Константы в си
- •Оператор создания типов данных в си
- •Неявное приведение типа
- •Явное приведение типа в языке c
- •1.1. Арифметические операции
- •2.4 Побитовые операции в си
- •№3 Циклические алгоритмы.
- •Операция присваивания
- •Операции отношения
- •Арифметические операции
- •Логические операции
- •Сдвиговые операции
- •3.2 Цикл с предусловием while
- •Цикл с постусловием do...While
- •Цикл с постусловием
- •Параметрический цикл for
- •Рекомендации по выбору цикла
- •Операторы break и continue
- •Оператор безусловного перехода goto
- •Синтаксис
- •Синтаксис
- •Заметки
- •Синтаксис
- •Заметки
- •Тернарные операции
- •Оператор ветвления switch (оператор множественного выбора)
- •№5 Указатели и массивы.
- •Объявление и инициализация массивов
- •Многомерные массивы
- •Инициализация многомерных массивов
- •Передача массива в функцию
- •5.2 И 5.3
- •5.1 Указатели и адреса
- •5.2 Указатели и аргументы функций
- •5.3 Указатели и массивы
- •5.4 Адресная арифметика
- •5.5 Символьные указатели функции
- •5.6 Массивы указателей, указатели на указатели
- •5.7 Многомерные массивы
- •5.8 Инициализация массивов указателей
- •5.9 Указатели против многомерных массивов
- •5.10 Аргументы командной строки
- •5.11 Указатели на функции
- •5.12 Сложные объявления
- •5.4 Указатели типа void
Заметки
Все остальные операторы текущей итерации не выполняются.Следующая итерация цикла определяется следующим образом.
В цикле doилиwhileследующая итерация начинается путем повторного вычисления управляющего выражения оператораdoилиwhile.
В цикле for(в котором используется синтаксисfor(init-expr;cond-expr;loop-expr)) выполняется предложениеloop-expr.Затем повторно выполняется предложениеcond-exprи, в зависимости от результата, цикл завершается или начинается другая итерация.
В следующем примере показано использование оператора continueдля обхода фрагментов кода и начала выполнения следующей итерации цикла.
Копировать
// continue_statement.cpp
#include <stdio.h>
int main()
{
int i = 0;
do
{
i++;
printf_s("before the continue\n");
continue;
printf("after the continue, should never print\n");
} while (i < 3);
printf_s("after the do loop\n");
}
перед continue
перед continue
перед continue
после цикла do
3.3.3
Оператор gotoбезусловно передаёт управление в инструкцию с меткой заданным идентификатором.
Синтаксис
Копировать
goto identifier;
Заметки
Оператор, метка которого задана в параметре identifier, должен находиться в текущей функции.Все имена, заданные в параметреidentifier, являются членами внутреннего пространства имен и, следовательно, не пересекаются с другими идентификаторами.
Метка оператора имеет значение только для оператора goto; в остальных случаях метки операторов игнорируются. Повторно объявлять метку нельзя.
Вместо breakво всех случаях, когда это возможно, рекомендуется использовать операторыcontinue,returnиgoto.Однако, поскольку операторbreakвыполняет выход только из одного уровня цикла, возможны ситуации, когда для выхода из глубоко вложенного цикла может потребоваться использовать операторgoto.
Дополнительные сведения о метках и операторе gotoсм. в разделахОператоры с меткамииИспользование меток с оператором goto.
В
этом примере оператор gotoпередает
управление в точку с меткойstop,
когда значение переменнойiравно 3.
Копировать
// goto_statement.cpp
#include <stdio.h>
int main()
{
int i, j;
for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 )
goto stop;
}
}
// This message does not print:
printf_s( "Loop exited. i = %d\n", i );
stop:
printf_s( "Jumped to stop. i = %d\n", i );
}
Outer loop executing.i = 0
Inner loop executing.j = 0
Inner loop executing.j = 1
Outer loop executing.i = 1
Inner loop executing.j = 0
Inner loop executing.j = 1
Outer loop executing.i = 2
Inner loop executing.j = 0
Inner loop executing.j = 1
Outer loop executing.i = 3
Inner loop executing.j = 0
Jumped to stop.i = 3
№4
Алгоритмы с ветвлением.
4.1
Смотри пункт 3.1
4.2
Условный оператор if
Операция проверки условия в языке Си осуществляется с использованием оператора if. Общая форма записи
if(выражение){
блок операций 1; } else {
блок операций 2; }
Если выражение истинно, то выполняется блок операций 1, иначе выполняется блок операций 2. Блок операций может состоять из одной операции. В этом случае наличие фигурных скобок, ограничивающих блок, необязательно.
Такая структура представляет собой полную развилку.
Оператор if может также применяться в случае неполной развилки. При этом форма записи этого условного оператора будет следующей:
if(выражение){ блок операций 1; }
Пример
#include <stdio.h> int main() {
int k;
printf("k= ");
scanf("%d",&k);
if(k >= 5) {
printf("%d >= 5", k);
} else {
printf("%d < 5", k);
}
getchar(); getchar();
return 0; }
Оператор if может быть вложенным.
Пример:
#include <stdio.h> #include <stdlib.h> int main() {
int key;
system("chcp 1251");
system("cls");
printf("Введите номер пункта, 1 или 2: ");
scanf("%d",&key);
if (key == 1)
printf("\n Выбран первый пункт");
else if (key == 2)
printf("\n Выбран второй пункт");
else
printf("\n Первый и второй пункты не выбраны");
getchar(); getchar();
return 0; }
Результат выполнения

При использовании вложенной формы оператора if опция else связывается с последним оператором if. Если требуется связать опцию else с предыдущим оператором if, внутренний условный оператор заключается в фигурные скобки:
if (key!= 1) {
if (key == 2)
printf("\n Выбран второй пункт");
} else
printf("\n Выбран первый пункт");
