
- •1. Модель компьютера для программиста
- •2.Программное обеспечение. Компиляторы и интерпретаторы
- •3. Создание программ. Жизненный цикл программного обеспечения.
- •4. Транслятор и компоновщик. Библиотека языка Си.
- •5. Базовые элементы языка Си. Алфавит и словарь языка.
- •6. Правила образования идентификаторов. Ключевые слова и имена. Символы операций и разделителей.
- •7. Литералы. Структура предложений в Си.
- •9.Константы и переменные в Си
- •10. Типы данных и их роль в языке Си
- •11. Стандартные скалярные типы данных
- •11.Массивы
- •Структуры
- •14 .Арифметические выражения и операции
- •15. Выражение
- •16. Выражения присваивания.
- •17. Условные и логические операции.
- •18. Выражения с указателями
- •19. Постфиксное выражение
- •21.Приоритет операций и скобочная структура выражений
- •22. Структура программы на Си
- •23. Базовые операторы языка Си
- •24. Условные операторы языка Си.
- •25. Оператор Switch . Организация множественного выбора.
- •26. Оператор return
- •27. Операторы цикла
- •28. Оператор continue как средство управления циклом
- •30. Указатели
- •31. Массивы. Синтаксис объявления.
- •32. Основные свойства массивов
- •Массив и константный указатель
- •34. Символьная строка и массив символов
- •37. Многомерный массив
- •38. Многомерные массивы и указатели
- •39. Директива процессора #define
- •40. Директива #include
- •43. Вызовы функций
- •44. Массивы и параметры
- •48. Объявление функции
- •50 Преобразование основных типов.
- •51. Тип функции
- •52. Стандартные функции библиотеки Си
28. Оператор continue как средство управления циклом
Оператор continue дает возможность выполнить переход на конец цикла и продолжить выполнение программы со следующей итерации цикла
Синтаксис оператора следующий
<Предложение начала цикла>
if (условие пропуска)
continue;
//<последовательность#2 операторов> }
<Предложение конца цикла>
29. Оператор goto
Хотя для написания структурированных программ не рекомендуется использовать операторы перехода, в языке Си имеется оператор перехода goto. Синтаксис оператора следующий:
goto имя;
……………
имя: оператор;
Оператор goto передает управление на оператор с меткой имя. Помеченный оператор должен находиться в той же функции, что и оператор goto, и метка должна быть уникальной. Если помеченный оператор встречается в любом другом контексте, он выполняется без учета метки.
Метка – это просто идентификатор. Каждая метка должна отличаться от других меток той же функции. Любой оператор в составном операторе может иметь метку. Используя goto, можно передать управление внутрь составного оператора. Однако надо быть очень внимательным в этом случае, так как результат может быть непредсказуемым.
30. Указатели
Язык Си поддерживает адресную арифметику, т.е. арифметику с использованием адресов памяти. Для представления адреса предназначен тип данных, называемых указателем. Указатель это переменная, содержащая адрес другого объекта Си – программы. Если переменная содержит адрес некоторого другого объекта, то говорят, что переменная указывает на этот объект. Указатель может указывать на обычную переменную, массив, строку, структуру, другой указатель, функцию, (т.е. он может содержать адрес любого объекта из памяти компьютера.)
Использование указателей позволяет создавать более быстрые и компактные программы, т.к. указатель позволяет ссылаться на объекты программы так же как это делает вычислительная машина.
Применение указателей полезно в следующих случаях:
1.при динамическом распределении памяти
2.при работе с файлами
3.передача указателей в качестве параметров функции, позволяет вызываемой функции изменять данные вызывающей функции
4.указатель является альтернативным (по отношению к индексам) способом работы с массивом и позволяет обеспечивать передачу массива для обработки вызываемой функции
5.можно определить указатель на функцию и использовать этот указатель для вызова функции. Это дает возможность передавать функции в функции.
Определение указателей
Указатель—это переменная, предназначенная для хранения адреса. Адрес является порядковым номером ячейки памяти. Метка (идентификатор) – это имя переменной. Объявление указателя имеет следующий формат: Тип *имя_указатля;
Объявление выделяет память для переменной типа указатель, но ни на что не указывает. До тех пор, пока указателю не будет присвоен адрес какого либо объекта, его нельзя использовать в программе. Для получения адреса какого-либо объекта используется операция “адрес (&)”. Операция & является операцией взятия адреса (это не операция ссылки, которая также обозначается &) и используется для получения адреса переменной. Операция взятия адреса возвращает адрес переменной, структуры, функции и т.д., операция ссылки создает альтернативное имя переменной, используя другую переменную.
Доступ к объекту через указатель осуществляется с помощью операции “разадресации (*)”, которая рассматривает свой операнд как адрес некоторого объекта и использует этот адрес для выборки содержимого. Типом результата операции разадресации является тип объекта адресуемого указателем.
Тип адресуемый указателем, определяет количество байтов, извлекаемых из памяти при выполнении операции разадресации. Указатель всегда должен указывать на объект того же типа, с которым он объявлен.
Преобразование указателей
Указатель на объект одного типа может быть преобразован в указатель на другой тип. Однако, при этом следует учитывать, что объект, адресуемый преобразованным указателем будет интерпретироваться по другому (может измениться его размер и значение). Преобразование указателей выполняется операцией приведения типа указателя:
(тип *) указатель;