
- •Определение алгоритма
- •Классификация языков
- •Модификаторы доступа
- •Объявление переменных
- •Локальные переменные
- •Формальные параметры
- •Глобальные переменные
- •Спецификаторы хранения
- •Оператор присваивания
- •Инициализация переменных
- •Константы
- •Операторы
- •Оператор ?
- •Операторы указания & и *
- •Оператор sizeof
- •Оператор «запятая»
- •Выражения
- •Преобразования типов в выражениях
- •Принудительные преобразования типов
- •Оператор break
- •Оператор continue
- •Метки и goto
- •Одномерный массив
- •Создание указателя на массив
- •Двумерные массивы
- •Массивы строк
- •Многомерные массивы
- •Индексация с помощью указателей
- •Размещение массивов
- •Функции
- •Оператор return
- •Правила видимости для функций
- •Аргументы функции. Передача по значению и передача по указателю
- •Передача массивов в функции
- •Аргументы функции main()
- •Возврат указателей
- •Указатели на функции
- •Структуры
- •Доступ к членам структуры
- •Присваивание структур
- •Массивы структур
- •Указатели на структуры
- •Битовые поля
- •Объединения
- •Перечисления
- •Использование typedef
- •Ввод, вывод, потоки и файлы
- •Форматированный консольный ввод-вывод
- •Модификаторы формата
- •Файловая система ansi c
- •Запись и чтение символа
- •Использование feof()
- •Работа со строками: fgets() и fputs()
- •Указатели
- •Односвязные списки
- •Обход односвязного списка
- •63.Бинарное дерево поиска. Вставка и поиск элемента по ключу в бинарном дереве поиска. Поиск элемента (find)
- •Добавление элемента (insert)
- •64.Бинарное дерево поиска. Удаление элемента из бинарного дерева поиска. Удаление узла (remove)
- •65.Обход бинарного дерева
- •66.Балансировка бинарного дерева поиска
-
Оператор ?
С имеет очень мощный оператор, который можно использовать вместо if-else. Оператор ? имеет следующий вид:
выражение1 ? выражение2 : выражение3
Оператор ? работает следующим образом: вычисляется выражение1, если оно истинно, то вычисляется выражение2 и всё выражение получает это значение, если ложно, то вычисляется выражение 3 и всё выражение получает это значение. Например:
x = 10;
y = x>9 ? 100 : 200;
В данном примере y получает значение 100. Если бы х было меньше либо равно 9, то у получила бы значение 200.
-
Операторы указания & и *
Указатель – это адрес переменной в памяти. Указатель на переменную – это переменная, специально созданная для хранения указателя на объект определённого типа. Зная адрес переменной, можно существенно упростить работу некоторых программ. Указатели имеют три главных назначения в С:
-Предоставляют быстрое обращение к элементам массива.
-Позволяют функциям модифицировать передаваемые параметры.
-Поддерживают динамические структуры данных.
Первый оператор - &. Это унарный оператор, возвращающий адрес операнда в памяти. Например:
m = &count;
помещает в m адрес переменной count.
Второй оператор – это *, дополняющая &. Это унарный оператор, возвращающий значение переменной по указанному адресу. Например:
q = *m;
Переменные, содержащие адреса или указатели, должны объявляться путём помещения * перед именем переменной. Например, для объявления указателя ch на символ, следует написать
char *ch;
Здесь ch это не символ, а указатель на символ. Тип данных, на который указывает указатель, называется базовым типом указателя.
Ниже операторы * и & используются для занесения числа 10 в переменную target:
#include <stdio.h>
int main(void)
{
int target, source;
int *m;
source = 10;
m = &source;
target = *m;
printf(“%d”, target);
return 0;
}
-
Оператор sizeof
sizeof – это унарный оператор, возвращающий длину в байтах переменной или типа, помещённого в скобки. Например:
float f;
printf(“%f ”, sizeof f);
printf(“%d”, sizeof(int));
выдаёт 4 4. (Предполагается использование 32-битных целых).
-
Операторы выбора
С поддерживает два типа оператора выбора: if и switch. Кроме того, оператор ? является иногда альтернативой if.
Условный оператор if
Синтаксис полной формы условного оператора:
if ( логическое выражение ) оператор1;
else оператор2;
Если логическое выражение истинно, т.е. не равно нулю, то выполняется оператор1, иначе выполняется оператор2.
Синтаксис сокращенной формы условного оператора:
if ( логическое выражение ) оператор;
Оператор выполняется только в том случае, если логическое выражение не равно нулю, т.е. истинно.
Под логическим выражением понимается совокупность операций отношений и логических операций.
Часто, каждая из альтернативных возможностей оператора if требует выполнения более одного оператора. В этом случае необходимо заключить группу операторов в фигурные скобки { }.
Список операторов, заключенный в фигурные скобки, называется блоком.
Лесенка if-else-if
Типичной программной конструкцией является лесенка if-else-if. Она выглядит следующим образом:
if(выражение)
оператор;
else if(выражение)
оператор;
else if(выражение)
оператор;
…
else
оператор;
Условия вычисляются сверху вниз. Когда обнаруживается истинное условие, то выполняется оператор, связанный с этим условием, а остальная часть конструкции игнорируется. Если не найдено ни одного истинного условия, выполняется оператор, соответствующий последнему else.
switch
Синтаксис оператора switch:
switch (выражение)
{
case константное выражение: оператор или группа операторов;
break;
case константное выражение: оператор или группа операторов;
break;
case константное выражение: оператор или группа операторов;
break;
. . . . . . . .
defaulf: оператор или группа операторов;
};
Результат вычисленного выражения сравнивается с каждым из константных выражений. Если находится совпадение, то управление передается оператору, связанному с данным case. Исполнение продолжается до конца тела оператора switch или пока не встретится оператор break, который передает управление из тела switch оператору, следующему за switch. Оператор или группа операторов, стоящий после default, выполняется, если выражение не соответствует ни одному из константных выражений в case.
Константные выражения должны быть целого или символьного типа. Если нескольким константным выражениям соответствует один и тот же оператор, то возможна следующая запись:
switch (выражение)
{
case константное выражение:
case константное выражение:
case константное выражение: оператор или группа операторов;
break;
};