- •Int a; /* целая
- •Int n; // Переменная n целого типа double a; // Переменная a вещественного типа двойной точности
- •Вещественные константы
- •Символьные константы
- •Строковые константы
- •Логические операции
- •Тернарные операции
- •Оператор ветвления switch
- •Параметрический цикл for
- •Тип *имя_объекта;
- •Стандартные функции динамического выделения памяти
- •Динамическое выделение памяти для одномерных массивов
- •Основные функции стандартной библиотеки string.H
- •Массивы структур
- •Идентификатор(аргумент1, ..., агрументn)
- •Функция, позволяющая вывести день недели на русском языке
- •Файловая структура fat32
- •Работа с файлами в языке Си
Символьные константы
Символьная константа — это один символ, например: 'z'. В качестве символьных констант также могут использоваться управляющие коды, не имеющие графического представления. При этом код управляющего символа начинается с символа '\' (обратный слеш).
Код |
Обозначение |
Описание |
0x00 |
'\0' |
Нуль-символ, NULL |
0x07 |
'\a' |
Звуковой сигнал. |
0x08 |
'\b' |
Возврат на 1 шаг (Backspace) |
0x09 |
'\t' |
Горизонтальная табуляция (Tab) |
0x0A |
'\n' |
Перевод строки (Enter) |
0x0B |
'\v' |
Вертикальная табуляция (в консоли аналогична переводу строки) |
0x0C |
'\f' |
Смена страницы |
0x0D |
'\r' |
Возврат каретки |
Как правило, нажатие клавиши "Enter" генерирует сразу два управляющих символа - перевод строки (0x0A) и возврат каретки (0x0D).
Все символьные константы имеют тип char и занимают в памяти 1 байт. Значением символьной константы является числовое значение её внутреннего кода.
Строковые константы
Строковая константа — это последовательность символов, заключенная в кавычки, например: "Это строковая константа" Кавычки не входят в строку, а лишь ограничивают её. Технически строковая константа представляет собой массив символов, и по этому признаку может быть отнесена к разряду сложных объектов языка Си.
В конце каждой строковой константы компилятор помещает '\0' (нуль-символ), чтобы программе было возможно определить конец строки. Такое представление означает, что размер строковой константы не ограничен каким-либо пределом, но для определения длины строковой константы её нужно полностью просмотреть.
Поскольку строковая константа состоит из символов, то она имеет тип char. Количество ячеек памяти, необходимое для хранения строковой константы на 1 больше количества символов в ней (1 байт используется для хранения нуль-символа).
Символьная константа 'x' и строка из одного символа "x" - не одно и то же. Символьная константа - это символ, используемый для числового представления буквы x, а строковая константа "x" содержит символ 'x' и нуль-символ '\0' и занимает в памяти 2 байта. Если в программе строковые константы записаны одна за другой через разделители, то при выполнении программы они будут размещаться в последовательных ячейках памяти.
Переменные
Переменная — идентификатор, представляющий собой изображение изменяемого объекта. C технической точки зрения, переменная — это область памяти, в которую могут помещаться различные значения.
Любая переменная до ее использования в программе на языке Си должна быть объявлена, то есть для нее должны быть указаны тип и имя (идентификатор).
Объявление переменных в Си осуществляется в форме
ТипПеременной ИмяПеременной;
Каждую переменную можно снабдить комментарием, поясняющим ее смысл. Например,
int i; // счетчик циклов
Если в программе требуется несколько переменных одного типа, то они могут быть объявлены в одной строке через запятую. Например,
int i, n;
При объявлении переменной ей может быть присвоено начальное значение в форме ТипПеременной ИмяПеременной=значение; Например,
int i=0, k, n, m=1; float pi=3.1415, y; char a='a';
Операции в языке Си
Главная > Язык Си > Операции в языке Си
Над объектами в языке Си могут выполняться различные операции:
операции присваивания;
операции отношения;
арифметические;
логические;
cдвиговые операции.
Результатом выполнения операции является число.
Операции могут быть бинарными или унарными. Бинарные операции выполняются над двумя объектами, унарные — над одним.
Операция присваивания
Операция присваивания обозначается символом = и выполняется в 2 этапа:
вычисляется выражение в правой части;
результат присваивается операнду, стоящему в левой части:
объект = выражение;
Пример:
int a = 4; // переменной a присваивается значение 4 int b; b = a + 2; // переменной b присваивается значение 6,
// вычисленное в правой части
В случае если объекты в левой и правой части операции присваивания имеют разные типы используется операция явного приведения типа.
объект = (тип)выражение;
float a = 241.5;
// Перед вычислением остатка от деления a приводится к целому типу int b = (int)a % 2; // b = 1
Операции отношения
Основные операции отношения:
== эквивалентно — проверка на равенство;
!= не равно — проверка на неравенство;
< меньше;
> больше;
<=меньше или равно;
>= больше или равно.
Операции отношения используются при организации условий и ветвлений. Результатом этих операций является 1 бит, значение которого равно 1, если результат выполнения операции - истина, и равно 0, если результат выполнения операции - ложь.
Арифметические операции
Основные бинарные операции, расположенные в порядке уменьшения приоритета:
умножение *;
деление /;
сложение +;
вычитание -;
остаток от целочисленного деления %.
Основные унарные операции:
инкрементирование (увеличение на 1) ++;
декрементирование (уменьшение на 1) --;
изменение знака -.
Результат вычисления выражения, содержащего операции инкрементирования или декрементирования, зависит от того, где расположен знак операции (до объекта или после него). Если операция расположена до объекта, то сначала происходит изменение значения переменной на 1, а потом это значение используется для выполнения следующих операций. Если операция ++ или -- расположена после переменной, то сначала выполняется операция, а потом значение переменной изменяется на 1. Пример:
int a=2; int b=3; int c, d; c = a*++b; // c=8, поскольку в операции умножения уже b=4 d = a*b++; // d=6, поскольку в операции умножения b=3
Бинарные арифметические операции могут быть объединены с операцией присваивания:
объект *= выражение; // объект = объект * выражение
объект /= выражение; // объект = объект / выражение
объект += выражение; // объект = объект + выражение
объект -= выражение; // объект = объект - выражение
объект %= выражение; // объект = объект % выражение
