
- •1.4.2 Типы и размеры данных в Си
- •1.4.3 Константы
- •1. Целые константы
- •2. Константа действительна
- •3. Символьная константа
- •4. Строчная константа
- •5. Константный выражение
- •Тема 2. Декларации
- •Тема 3. Операторы
- •3.2 Операторы отношений и сравнение на равенство
- •3.5 Операторы присваивания
- •3.5.1 Самый оператор присваивания
- •3.5.2 Другие операторы присваивания Сi
- •3.6 Iнкрементнi и декрементнi операторы
- •Тема 4. Управление
- •4.3 Переключение switch
- •4.4 Цикл While
- •4.5 Цикл for
- •4.6 Операция "," (запятая)
- •4.7 Цикл do - while
- •4.8 Инструкция break
- •4.9 Сontinue
- •4.10 Переходы и метки
- •Тема 5. Указатели и массивы
- •5.1 Указатели
- •5.2 Связь указателей и массивов
- •5.3 Связь между адресной арифметикой и индексированием массивов
- •5.4 Различие между именем массива и указателем (в роли именi массива)
- •5.5 Буквенные указатели
- •5.6 Массивы указателей
- •5.11 Функции проверки свойств символов
- •5.12 Функции преобразования строк
4.10 Переходы и метки
Переход используется, если нужно выйти из структуры с некоторой глубиной вложенности (например, покинуть сразу два цикла).
Пример 13:
for (...)
for (...)
{...
if (<выражение>)
goto <метка>;
...
}
...
<Метка>:
...
Метка имеет вид обычного имени переменной, за которым нужна двоеточие.
Если
оператор с данной меткой отсутствует
или имеется более одного оператора,
помеченного той же меткой, то компилятор
сообщает об ошибке.
Нельзя с помощью
оператора goto передать управление на
конструкции case и default в теле переключателя,
на инструкции ветвей "то" или
"иначе" конструкций if-else.
Тема 5. Указатели и массивы
Цель: познакомиться с понятием "указатель", с представлением массивов в памяти ЭВМ, доступ к элементам массива с помощью индексов i указателей, с понятием "адресная арифметика", со способами представления строк в языке Си.
5.1 Указатели
5.2 Связь указателей и массивов
5.3 Связь между адресной арифметикой и индексированием массивов
5.4 Различие между именем массива и указателем (в роли именi массива)
5.5 Буквенные указатели
5.6 Массивы указателей
5.7 Инициализация массивов указателей
5.8 Многомерные массивы
5.9 Указатели вместо многомерных массивов
5.10 Функции обработки строк
5.11 Функции проверки свойств символов
5.12 Функции преобразования строк
5.1 Указатели
Указатель - это переменная, значением которой является адрес. Указатель можно описать в декларации. Организация памяти:
-Номера ячеек - адреса
Компилятор распределяет память по переменным. Память представляет собой последовательность ячеек, которые перенумерованы (проадресованi). Обработка ячеек памяти может быть выполнена либо отдельными ячейках или группами ячеек (2 байта, 4 байта, 8 байтiв).
Оператор & (унарный)
- Префiксний; - высокий приоритет; - правоасоцiативний.
Этот оператор выдает адрес объекта.
Пример 1:
p = &c;
pi = &i;
В Turbo-C адреса могут быть двух-или чотирьохбайтовi (это зависит от модели памяти).
<Имя операции главного меню> => Options => Compiler => Model (6 моделей памяти)
* р ссылается на переменную (указывает). pi ссылается на i
- Оператор адреса применяется только к операндов, расположенным в оперативной памяти. Это переменные или элемент массива. Нельзя применять его к констант или выражений.
Унарный оператор *
- Префiксний - высокий приоритет; - правоасоцiативнbй;
* - Раскрытие ссылки (розiменування). Применяется только к указателям и выдает объект, на который ссылается указатель.
- Указатель всегда ссылается на объекты заданного типа (кроме void)
Пример 2:
int a = 1; / * * ip можно использовать везде, где
int * ip; нужно использовать а: * /
ip = &a;
-2 Способы доступа к а
* Ip = * ip +10; / * a = 11 * /
y = * ip +1; / * y = 12 * /
* Ip + = 1; / * a = 12 * /
(* Ip) + +;
! * ip + + происходит изменение самого указателя - перейти к следующему целого значения (+2) - (если тип - указатель на float, то +4) - переход к следующему объекту этого типа
Указатель - это переменная