Лекция 2 Введение в язык Си
Алфавит Прописные и строчные буквы латинского алфавита: A,B…Z, a,b…z Цифры: 0,1,2…9 Специальные символы:,{ } | [ ] ( ) + - / % \ ;. : ? _ ! & * # ~ ^ Неотображаемые символы (пробел, табуляция, переход на новую строку) Корректные комментарии: /* однострочный комментарий */ /* ********* Многострочный комментарий *************/ Некорректные комментарии: /* текст 1 /* текст 2 */ текст 3 */
Идентификаторы Идентификатор это последовательность букв и цифр. Первым символом должна быть буква (знак подчеркивания _ считается буквой). Буквы нижнего и верхнего регистров различаются. Различимая длина: 31 символ Примеры: size88, TIME, time, _MIN, first_name
Служебные (ключевые) слова Спецификаторы типов: char, double, enum, float, int, long, short, struct, signed, union, unsigned, void, typedef. Квалификаторы типа: const, volatile. Классы памяти: auto, extern, register, static. Операторы: break, continue, do, for, goto, if, return, switch, while. Прочие: default, case, else, sizeof.
Константы Константа представляет значение, которое не может быть изменено. Типы констант: Символы Константы перечисляемого типа Вещественные числа Целые числа Нулевой указатель
Символьные константы Печатные символы: 'A', 'b', '0', '+' Управляющие символы '\n'Перевод строки'\0'Нулевой символ '\t'Гориз.табуляция'\a'Сигнал-звонок '\r'Возврат каретки'\b'Backspace '\\'Обр.косая черта'\f'Перевод страницы '\''Апостроф'\v'Верт.табуляция '\"'Кавычка'\?'Знак вопроса Эскейп-последовательности: '\ooo', '\xhh', '\Xhh Пример: \032, \xFF
Числовые константы Целочисленные константы Десятичные: Восьмеричные: Шестнадцатеричные: 0x1f 0XFF Вещественные константы: e0.31e-2 0.0
Константы перечислимого типа enum [ ] { }; enum – служебное слово, вводящее перечисление Тип перечисления (необязателен) – название перечисления Список именованных констант – разделенная запятыми последовательность идентификаторов Пример: enum {ONE=1, TWO, THREE}; enum DAY {SUNDAY, MONDAY, TUESDAY, …, SATURDAY}; enum BOOLEAN {NO, YES};
Строки, или строковые константы Строковая константа – последовательность символов, заключенная в двойные кавычки: Примеры "Образец строки" "\nТекст\nразместится\nна 3-х строках" "Шалтай-Болтай \ сидел на стене." = "Шалтай-Болтай сидел на стене." "Шалтай-Болтай " " свалился во сне." = "Шалтай-Болтай свалился во сне."
Переменные Переменная – именованная ячейка памяти, значение которой может меняться во время выполнения программы. Каждая переменная в программе должна быть определена (объявлена). У каждой переменной задан тип. Переменная может принимать значения только соответствующего типа.
Определение переменных Простая форма объявления переменных: [, … ]; Пример: float y; int a, var1, temp, i; Определение переменных с инициализацией: = ; Пример: int var2 = 1234; Защита от изменения: const = ;
Базовые типы данных Базовые типы данных: char –– единичный байт (символ) int – целое число float – число с плавающей запятой одинарной точности double – число с плавающей запятой двойной точности
Квалификаторы типов Размер: short (для типа int ) – меньшая размерность long (для типов int и double)– большая размерность Знак: signed – знаковый тип unsigned – беззнаковый тип
Размерность типов ТипРазмерДиапазон значений char1-2 7 … (-128…127) unsigned char10… (0…255) short int …32767 unsigned short int20…65535 int2, … , … unsigned int2,40… , 0… long … unsigned long40…
Арифметические операции Бинарные: + сложение - вычитание * умножение / деление % получение остатка от деления Унарные: - унарный минус (смена знака) + унарный плюс ++ инкремент (увеличение на 1) -- декремент (уменьшение на 1)
Операторы отношения и логические операторы Бинарные: > «больше» < «меньше» >= «больше или равно»
Поразрядные операторы Бинарные: & поразрядное «И» |поразрядное «ИЛИ» ^поразрядное исключительное «ИЛИ» >> поразрядный сдвиг вправо 1 равняется 2 6 & 5 равняется 46 | 5 равняется 7 6 ^ 5 равняется 3~3 равняется 252 для unsigned char, -4 для signed char
Операторы присваивания =простое присваивание Присваивание с операцией: *= /= %= += -= >= &= |= ^= A += B равнозначно A = A + B
Прочие операции (тип) преобразования типа [ ] доступ к элементу массива ( ) скобки. (точка)прямой выбор компонента структурированного объекта ->косвенный выбор компонента структурированного объекта ? : условный оператор. Пример: a > b ? A : b, (запятая) группировка выражений * операция разыменования & операция получения адреса sizeof получения размера
Приоритеты вычисления операторов РангОператорыассоциативность 1( ) [ ] ->. 2! ~ & * (тип) sizeof 3* / % >> = 15,
Выражения Выражение состоит из одного или нескольких операндов, символов операций и ограничителей. Назначение любого выражения – формирование некоторого значения. Примеры: a+by=x*2x++k/3 a+b>c && a+c
Выражения ВыражениеЗначение выражения 1/ / mm kk -1 i++i x+++b(x++)+b
Арифметическое преобразование (приведение) типов Неявное преобразование: int a = 10; float b = a; /* преобразование при присваивании */ float b = a * 3.14; /* преобразование в арифм.выражении */ long double double float unsigned long int long unsigned int Явное преобразование int a = 10; char c = (int) (a * 32);