- •Язык высокого програмирования “с”
- •Переменные и типы переменных.
- •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
Переменные и типы переменных.
2.1 Типы данных в си
Тип данных – это описание диапазона значений, которые может принимать переменная, указанного типа. Каждый тип данных характеризуется: 1. количеством занимаемых байт(размером) 2. диапазоном значений которые может принимать переменная данного типа. Все типы данных можно разделить на следующие виды: 1. простые (скалярные) и сложные (векторные) типы; 2. базовые (системные) и пользовательские(которые определил пользователь). В языке СИ систему базовых типов образуют четыре типа данных: 1. символьный, 2. целочисленный, 3. вещественный одинарной точности, 4. вещественный двойной точности.
Подробное описание типов данных в языке си
тип |
Символьный тип |
Целочисленный тип |
Вещественный тип одинарной точности |
Вещественный тип двойной точности |
описание |
char |
int |
Float |
double |
размер |
1 байт (8 бит) |
4 байта (32 бита) |
4 байта (32 бита) 23 бита – мантисса; 8 бит – порядок; 1 бит – знак. |
8 байт (64 бита) 52 бита – мантисса; 11 бит – порядок; 1 бит – знак. |
диапазон значений |
-128 ... 127 |
2147483648 ... 2147483647 |
±3.4Е±38 Точность до 7 знаков после запятой |
±1.7Е±308 Точность до 17 знаков после запятой |
В языке СИ предусмотрены модификаторы типов данных двух видов: 1. модификаторы знака: signed и unsigned. 2. модификаторы размера: short и long. Более подробно модификаторы типов описаны в таблице:
Модификатор |
signed |
unsigned |
short |
long |
описание |
осуществляет преобразование целочисленных значений к знаковым числам |
осуществляет преобразование целочисленных значений к незнаковым числам |
уменьшает размер целочисленного типа в два раза |
увеличивает размер типа данных |
использование |
совместно с типами char и int. используется по умолчанию |
совместно с типами char и int. |
только с типом int |
совместно с типами int и double. |
пример |
используется по умолчанию |
unsigned char Диапазон: 0 ... 255 |
short int Диапазон: -32768 ...32767 |
long double – тоже, что и double Но в стандарте IEEE: 80 бит |
Комплексные числа в си
Комплексные числа введены в стандарте C99. float _Complex double _Complex long double _Complex Все это счастье находиться в библиотеке complex.h:) Минимальные и максимальные значения всех базовых типов данных языка СИ описаны в библиотеках: limits.h – содержит диапазоны целочисленных значений, float.h – содержит диапазоны вещественных значений.
Логический тип данных в си
Стандарт С89: Логический тип – int0 – ложь (false); не 0 – истина (true). Т.е как такового логического типа не создано, а вместо него используется int. Стандарт С99: Логический тип -_BoolКлючевые слова: bool true false А это счастье в библиотекеstdbool.h
Операторы объявлений
Переменная – именованная область памяти вычислительной машины, предназначенная для хранения значений определенного типа, с произвольным методом доступа: чтение и запись. Имя переменой – разрешенный идентификатор языка СИ не использовавшийся ранее для обозначения других переменных, типов, элементов перечислений или имен функций. Оператор объявления переменных имеет следующий синтаксис: тип имя1[,имя2[,...]]; Примеры: int a, b, c; double x, y; char ch; Есть некоторые негласные правила, т.е исполнения который является хорошим тоном, но делать это не обязательно: 1. каждое объявление переменных нового типа начинается с новой строки; 2. из названия переменной должно быть понятно зачем она и что в ней будет храниться(хотя иногда из-за таких вот информативных названий скорость написания кода падает, т.к некоторых заносит и они называют переменные целыми предложениями); 3. поэтому появляется правило: название переменной не должно быть слишком длинным; 4. после объявления переменной очень желательно в комментариях пометить зачем она; 5. необходимо разделять имена переменных пробелами. Оператор объявления переменных с инициализацией имеет следующий синтаксис: тип имя1[=значение1][, имя2[=значение2][,...]]; Примеры: int a=26, b=032, c=0x1A; double x=2.5e2,y=0x1.ffe-3; char ch=’Z’;