
- •Программа на с, включение заголовочных файлов стандартной библиотеки и разработанных пользователем. Именованные константы и макроопределения. Идентификаторы.
- •Типы данных (скалярные, составные). Размер памяти основных типов данных. Модификатор const.
- •Константы (целые, с плавающей точкой, символьные, строковые). Управляющие (Эскейп) последовательности.
- •Операторы с. Назначение. Условные выражения.
- •Функции. Объявление и определение функций, их отличие. Классы памяти и области действия функций. Типы возвращаемых значений. Формальные и фактические параметры. Вызов функции.
- •Объявление переменной. Классы памяти переменных. Области действия и время "жизни".
- •Массивы. Одномерные. Многомерные. Объявление. Инициализация. Использование индексных выражений для доступа к элементам массива.
- •Указатели. Объявление. Использование. Приведение типов для указателей на void. Операции над указателями.
- •Операции. Унарные операции. Бинарные. Тернарная. Присваивания. Приведение типов.
- •Структуры. Объявление. Выбор элементов структуры. Использование указателей на структуры.
- •Объединения. Их объявление.
Указатели. Объявление. Использование. Приведение типов для указателей на void. Операции над указателями.
Указатель – это переменная, значением которой является адрес некоторого объекта (обычно другой переменной) в памяти компьютера. Подобно тому, как переменная типа char имеет в качестве значения символ, а переменная типа int – целочисленное значение, переменная типа указателя имеет в качестве значения адрес ячейки оперативной памяти. Допустимые значения для переменной-указателя – множество адресов оперативной памяти компьютера.
Общая форма объявления указателя:
тип *имя;
Например: char *ch; int *temp, i, *j, *k; float *pt, fon; Здесь указателями являются: ch, temp, j, k pt.
Над указателями определено 5 основных операций.
§ Определение адреса указателя: &p, где p – указатель (&p – адрес ячейки, в которой находится указатель).
§ Присваивание. Указателю можно присвоить адрес переменной p=&q, где p – указатель, q – идентификатор переменной.
§ Определение значения, на которое ссылается указатель: *p (операция косвенной адресации).
Увеличение (уменьшение) указателя. Увеличение выполняется как с помощью операции сложения (+), так и с помощью операции инкремента (++). Уменьшение – с помощью операции вычитания (–) либо декремента (––).
Приведение типов для указателей на void
по простому: в этот указатель мы можем поместить любой тип данных. Он просто существует и его используют. например функция malloc возвращает его:
?
1 |
void * malloc(size_t); |
Операции. Унарные операции. Бинарные. Тернарная. Присваивания. Приведение типов.
операции языка СИ (C)
Любое выражение языка состоит из операндов (переменных, констант и др.), соединенных знаками операций. Знак операции - это символ или группа символов, которые сообщают компилятору о необходимости выполнения определенных арифметических, логических или других действий.Операции выполняются в строгой последовательности. Величина, определяющая преимущественное право на выполнение той или иной операции, называется приоритетом.Порядок выполнения операций может регулироваться с помощью круглых скобок.
Операция присваивания
Сначала рассмотрим одну из них - операцию присваивания (=). Выражение вида
х = у;
присваивает переменной х значение переменной у. Операцию "=" разрешается использовать многократно в одном выражении, например:
x = y = z = 100;
Различают унарные и бинарные операции. У первых из них один операнд, а у вторых - два.
Безотносительно к определённому языку программирования тернарную операцию можно определить так:
логическое выражение ? выражение 1 : выражение 2
Алгоритм работы операции следующий:
Вычисляется логическое выражение.
Если логическое выражение истинно, то вычисляется значение выражения выражение 1, в противном случае — значение выражения выражение 2.
Вычисленное значение возвращается.
Приведе́ние ти́па — преобразование значения переменной одного типа в значение другого типа
Для явного приведения типов некоторой переменной перед ней следует указать в круглых скобках имя нового типа, например:
int X;
int Y = 200;
char C = 30;
X = (int)C * 10 + Y; //переменная С приведена к типу int.