- •4.Элементы языка Си. Символы, лексемы, знаки операций.
- •1.Символы языка
- •2.Лексемы
- •5.Элементы языка Си. Константы, идентификаторы, ключевые слова, комментарии.
- •6.Типы данных.
- •7.1,Объявление переменных. Массивы.
- •7.2,Объявление переменных. Массивы.
- •9.1,Операции и выражения. Арифметические операции
- •11. Логические операции и операции отношения. Операции присваивания
- •12.Условное выражение. Операция Sizeof. Операции приведения типов type.
- •13.1,Преобразование типов в выражения. Правила приведения типов.
- •13.2,Преобразование типов в выражения. Правила приведения типов.
- •14.1, Управление вычислительными процессами. Конструкции if-else, else-if.
- •14.2, Управление вычислительными процессами. Конструкции if-else, else-if.
- •15.Переключатель
- •16. Операторы цикла.
- •17.1.Инструкции break, continue. Инструкция goto и метки. Пустой оператор
- •17.2.Инструкции break, continue. Инструкция goto и метки. Пустой оператор
- •Пустой оператор
- •18.1.Классы памяти.
- •18.2.Классы памяти.
- •19.1. Функции. Определение ф-ций.
- •Определение ф-ции
- •19.2. Функции. Определение ф-ций.
- •21. Структура программы на языке Си
- •22. Директивы #define и # undef.
- •24,Директивы препроцессора. Препроцессорные операции.
- •Препроцессорные операции
- •25.1, Указатели.Операции &,*.
- •25.2, Указатели.Операции &,*.
- •26. Указатель на неопределенный тип.
- •27.1,Выражения и операции с указателями. Присваивание указателей
- •Сравнение указателей
- •27.2,Выражения и операции с указателями. Применение арифметических операций к указателям
- •29. Массивы и указатели.
- •30.Операции с указателями на массив. Адресная арифметика.
- •32.Массивы указателей. Указатели на указатели.
- •33.Массивы указателей на строки.
- •34.1,Передача параметров из операционной среды.
- •34.2,Передача параметров из операционной среды.
- •36.1,Динамичное распределение памяти.
- •36.2,Динамичное распределение памяти.
- •37,1,Структуры. Операции над структурами
- •37,2,Структуры. Операции над структурами
- •38.Массив структур. Правило выравнивания структурных переменных в памяти
- •39.1,Переименование типов. Средство typedef.
- •39.2,Переименование типов. Средство typedef.
- •40.Поля битов.
- •41.1,Объединения
- •41.2,Объединения
- •42.Ввод, вывод потока.
- •43.Доступ к файлам через поток ввода/вывода.Открытие потока.Закрытие потока.
- •44.1,Доступ к файлам через поток ввода/вывода.Функция потокового ввода вывода.
- •44.2,Доступ к файлам через поток ввода/вывода.Функция потокового ввода вывода.
- •45,Последовательный и прямой доступ в поток.
11. Логические операции и операции отношения. Операции присваивания
Эти операции участвуют в формировании выражений, к-рые могут принимать только два значения 1(True) или 0(False). Операции отношения >, >=, <, <= имеют одинаковый приоритет.
Операция > дает 1 ,если операнд слева больше операнда справа, и 0- если наоборот.
Более низкий приоритет имеют операции = = , !=
Приоритет операций отношения больше арифметических операций .
Логические операции:
&&-дает 1, если оператор слева и операнд справа = логической 1
| | - дает 1, если оператор слева или операнд справа = логической 1
! (не)- дает 1, если оператор справа от операции равен 0
Последовательность логических операций выполняется до тех пор, пока не станет известна истинность или ложность результатов.
В языке Си операции присваивания имеют такие особенности:
1)кроме пересылки значения переменной, она имеет еще и результат выполнения, совпадающий с присваиваемым значением. Поэтому Си допускает запись в одном предложении нескольких операций присваивания. Типом и значением результата присваивания явл тип int a,b,c; и значение его левого операнда. a=b=c=0 ;
2)наличие комбинированой операции присваивания I=I+2 или I+=2
12.Условное выражение. Операция Sizeof. Операции приведения типов type.
В Си имеется тернарная операция, наз операцией условия или условным выражением, обозначаемая “ ?:”
If (a>b) z=a;
Else z=b;
Можно записать как z = (a>b) ? a : b
выр1?(выр2):(выр3)
Если выр1 истинно, то вычисляется выр2 и становится результатом всего выражения, если оно ложно, то вычисляется выр3.
Если типы операндов, принимающих участие в операции условия различны, то тип результата определяется правилами приведения типов не зависимо от значения результатов.
Операция Sizeof
Результатом Sizeof явл размер в байтах типа или переменных. Применение этой операции в массивах возвращает число байтов, необходимое для размещения всех элементов в массиве.
Int I,r;
Char c;
r = sizeof(int) ; [2]
r = sizeof(char); [1]
r = sizeof I; [2]
Операции приведения типов type.
В Си позволяется задавать явное приведение типов, используя унарную операцию type.
выр.(любой тип Си)
Эта операция приводит выражение к типу справа
Sqrt((double)n);
Операция приведения типов не изменяет типа аргумента,а лишь вырабатывает выражение этого типа.
13.1,Преобразование типов в выражения. Правила приведения типов.
Операнды бинарной операции могут быть разного типа. В этом случае перед ее выполнением компилятор предварительно приводит операнды к одному типу в соответстви с правилами приведения типов. Обычно автоматически выполняются те преобразования, к-рые без какой-либо потери информации превращают операнды с меньшим диапазоном в операнды с большим диапазоном. Операции в к-рых участвуют операнды и происходит изменение значений переменных с большим диапазоном в переменные с ментшим диапазоном впринципе допустим, но могут повлечь предупреждение. Выражения не имеющие смысла (число с плавающей точкой в виде индекса) не допускаются.
Правила приведения типов.
1.Операнды разных типов приводятся к старшему, т.е. более длинному типу.
Порядок старшинства типов: longdouble, double, float, unsigned long, longint, unsigned, int, short, char.
2.Если в выражении нет беззнаковых операндов, то действуют такие правила:
1)если один из операндов принадлежит типу longdouble, то другой приводится к типу longdouble.
2) если один из операндов принадлежит типу double, то другой приводится к типу double.
если один из операндов принадлежит типу int, то другой приводится к типу int. если один из операндов принадлежит типу float, то другой приводится к типу float.
3)операнды char, short, приводятся к int
4) операнды long приводятся к long.
При операции присваивания , результат приводится к тпу