Константы в С++

Ячейки памяти, предназначенные для хранения данных. Использование констант в языке программирования С++. Коды управляющих последовательностей в программе. Символьные (не литеральные) целочисленные константы. Спецификатор volatile в программном коде.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 21.01.2018
Размер файла 19,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Константы в С++

Дмитриев Владислав Леонидович

Аннотация

В работе рассказывается о использовании констант в языке программирования С++. Приведённая теория соответствует базовому уровню, и может быть полезна для тех, кто начинает изучать данный язык программирования.

Константы, как и переменные, представляют собой ячейки памяти, предназначенные для хранения данных. Однако, в отличие от последних, значение константы не может быть изменено в программе; поэтому создаваемая константа должна быть сразу инициализирована (т.е. константа инициализируется при объявлении).

В С++ предусмотрены два типа констант -- литеральные и символьные. Литеральная константа -- это значение, непосредственно задаваемое в программе; тип и значение такой константы определяется ее внешним видом. Различают следующие виды литеральных констант: числовые, символьные, строковые.

Числовые константы могут быть целыми и вещественными. Целые, в свою очередь, могут иметь десятичное (типа int), восьмеричное или шестнадцатеричное представление:

· десятичные: -18, 0, 12, 345, …;

· восьмеричные (начинаются с нуля): 00, 014, 045, 0777…;

· шестнадцатеричные (начинаются с 0х): 0х0000, 0х1A27, 0х5FFF, 0хFFF,…

По умолчанию целые десятичные константы имеют тип int.

Константам целого типа, используемым в программе, можно явно указать требуемый тип с помощью суффиксов L, l(long), U и u (unsigned). Например, константа 15L будет иметь тип long. Можно использовать суффиксы L и Uодновременно, например, 24UL.

Константы вещественного типа имеют по умолчанию тип double. Примеры вещественных констант: -1.314, 3.98, 0.8765, … Также можно явно указать тип константы с помощью суффиксов F, f (float), L и l (long). Например, константа 1.57E+5Lбудет иметь тип long, а константа 3.22f -- тип float.

Литеральные символьные константы задаются в апострофах, и их можно классифицировать на:

· клавиатурные: '8', 'g', 'K',…;

· кодовые (используются для задания управляющих и разделительных символов и пишутся в паре с символом обратной косой черты (обратный "слеш")): '\n', '\a', '\b', '\t', '\\', '\'',…; назначение таких констант представлено ниже в таблице 1.5.

· числовые кодовые (используются для задания ASCII-кодов символов): '\xhhh' (h -- шестнадцатеричная цифра), '\0ooo'(o -- восьмеричная цифра). Например, комбинация клавиш "Ctrl+Z" имеет код ASCII, равный 26; ему соответствует 032в восьмеричной системе и 0x1A в шестнадцатеричной.

Таблица 1 Коды управляющих последовательностей

Код С++

Назначение

Десятичный код ASCII

Шестнадцатеричный код ASCII

\n

Новая строка

10

0xA

\t

Горизонтальная табуляция

9

0x9

\v

Вертикальная табуляция

11

0xB

\b

Возврат на одну позицию

8

0x8

\r

Возврат каретки

13

0xD

\a

Звук предупреждения

7

0x7

\\

Обратная косая черта, \

92

0x5C

\'

Одинарная кавычка, '

39

0x27

\"

Двойная кавычка, "

34

0x22

Строковые константы представляют собой последовательности символов, заключенные в двойные кавычки: "Мир", "Ошибка", "Укажите номер элемента", "Press any key…", … Для хранения строковой константы требуется на 1 байт памяти больше, чем число символов между двойными кавычками в строковой константе. Этот дополнительный байт требуется для хранения кода-признака конца строки (000, или \0). Допускается использовать управляющие и разделительные символы внутри строковых констант, но в этом случае они указываются без апострофов: "\nНомер элемента", "Данные:\nвторая строка", и т.д.

Строковые константы типа wchar_t записываются с префиксом L, например: L"Year".

Символьные (не литеральные) константы (именные константы) -- это константы, представленные именем; они объявляются так же, как и переменные соответствующих типов, но с указанием слова const (ключевое слово constиногда называют квалификатором или просто -- спецификатором). Например:

const int a = 10;

const float x = 1.75;

const double y = 1.54E+12;

const char s = 'A';

const char Ch[] = "строка символов";

const wchar_t a[ ] = L"Year";

Как было сказано выше, в отличие от переменной, значение инициализированной константы изменить нельзя.

Приведем еще примеры с указателями. При этом используются 2 объекта: указатель, и то, на что он указывает. Причем один или оба объекта, в свою очередь, могут быть константами:

const char* p1 = "number"; // указатель на константу

char const* p2 = "number"; // указатель на константу

char *const p3 = "number"; // константный указатель

const char *const p4 = "number"; // константный указатель

// на константу

Первые две строки в этом примере аналогичны друг другу (тип и слово const можно менять местами).

Отмечу также, что в данном примере *const является оператором объявления указателя, наряду с символом *.

В некоторых случаях может получиться, что объект, не являющийся константой, выступает как константа при доступе к нему через указатель:

char s[] = "number"; // массив символов

const char* p = s; // указатель на константу

s[0] = 'z'; // изменяем один из символов (ошибки нет)

p[0] = 'z'; // будет выдано сообщение об ошибке:

// попытка изменить константу

Символьные (не литеральные) константы можно задавать также средствами препроцессора, на основе использования директивы #define:

#define DT 0.00017 // определяем числовую константу

#define ST "Press any key…" // определяем строковую константу

После этого в тексте программы можно будет использовать имена DT и ST. Препроцессор перед компиляцией программы везде заменит имена DT и ST на соответствующие им значения 0.00017 и "Press any key…".

Символьные (не литеральные) целочисленные константы можно задавать также с использованием типа enum.

Замечание. Ключевое слово const относится к одному из двух так называемых cv-спецификаторов. Второй спецификатор определяется ключевым словом volatile. константа память программный код

Спецификатор volatile указывает, что значение в ячейке памяти может быть изменено, даже если в программном коде нет ничего, что может приводить к модифицированию ее содержимого. Например, пусть имеется указатель на аппаратную область памяти, в которой хранятся какие-либо значения, поступающие из последовательного порта. В таком случае подключенное оборудование, а не программа, изменяет содержимое области памяти.

Если компилятор обнаруживает, что программа использует значение некоторой переменной несколько раз на протяжении выполнения нескольких операторов, то вместо того, чтобы заставить программу несколько раз предпринимать поиск такого значения, компилятор может поместить его в регистр. Это несколько оптимизирует время выполнения программы, однако такая оптимизация предполагает, что значение переменной не изменяется между несколькими случаями ее использования.

Если переменная не объявлена со спецификатором volatile, компилятор имеет право осуществлять описанную выше оптимизацию. Указание же спецификатора volatile говорит компилятору, что такая оптимизация не допускается.

Размещено на Allbest.ru

...

Подобные документы

  • Спецификатор класса памяти в объявлении переменной, ее область действия как часть программы или исходного модуля. Определение видимости переменных и функций в программе. Продолжительность жизни, виды моделей памяти. Передача параметров и массивов.

    лабораторная работа [62,2 K], добавлен 06.07.2009

  • Задачи, решаемые языком программирования. Типизированные и нетипизированные константы. Целочисленные типы, обозначающие множества целых чисел в различных диапазонах. Указатели - специальные объекты в программах на языках Си++. Пример виртуальной функции.

    контрольная работа [164,2 K], добавлен 30.12.2010

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Метаданные как машинопонятная информация о web ресурсах и других сущностях. Способы получения и передачи метаданных. Пространство имен атрибутов. Модель данных RDF - RDF-граф. Литералы, символьные константы. Определение значения типизированного литерала.

    лекция [56,0 K], добавлен 01.09.2013

  • Линейный массив в программе на C++ - упорядоченный набор однотипных переменных, располагающихся в памяти последовательно. Массив как простейшая структура данных, облегчающая работу с большими объемами информации. Использование типизированных констант.

    лабораторная работа [33,5 K], добавлен 15.07.2009

  • Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.

    курсовая работа [738,1 K], добавлен 17.05.2010

  • Рабочая среда Visual Basic (VB) и ее основные компоненты. Ввод и вывод данных в VB. Объявление переменных и констант в программе. Создание и работа с процедурами и функциями, их виды. Организация ветвления в VB. Использование циклов в программировании.

    практическая работа [502,5 K], добавлен 26.10.2013

  • Символьный тип данных как составляющая языка программирования: управляющие символы, лексемы и разделители. Разработка программного обеспечения для практической реализации решения задач, содержащих символьные величины языка программирования Turbo Pascal.

    курсовая работа [37,7 K], добавлен 03.05.2012

  • Конструкции Си, базовые типы данных языка программирования. Идентификаторы и типизированные константы. Область видимости и время жизни переменных. Функции преобразования символьных строк. Функции, работающие со строками. Разработка визуальных компонент.

    методичка [400,2 K], добавлен 06.07.2009

  • Общие сведения о функциях, их структура. Области видимости и классы памяти переменных в функциях. Классификация видов памяти, выделяемой под переменные и константы. Примеры объявления глобальных и локальных переменных. Обращение к функции и ее прототип.

    презентация [64,6 K], добавлен 09.12.2013

  • Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.

    реферат [28,1 K], добавлен 13.11.2009

  • Метод половинного деления и метод касательных. Переменные, константы, объявление типов данных. Объект WorkBook: его свойства, методы и события. Методы нахождения корней уравнений. Структурированные типы данных. Терминальные свойства объекта Workbook.

    курсовая работа [1,1 M], добавлен 14.07.2012

  • Основные этапы решения задач на ЭВМ. Элементы управления и пользовательская форма VBA. Ввод и вывод информации. Открытие и закрытие файла. Операторы цикла и подпрограммы. Реализация разветвляющихся алгоритмов в VBA. Типы данных, переменные и константы.

    учебное пособие [1,4 M], добавлен 21.05.2009

  • Разработка граф-схемы алгоритма раскраски на языке Object Pascal. Формат файла для хранения графов. Выбор удобочитаемых идентификаторов. Переменные, константы, типы, компоненты, процедуры и функции модулей uMain, uInputk, uFiling, uColoring, uHelp.

    курсовая работа [1,3 M], добавлен 22.11.2013

  • История создания и применение языка Basic. Стандартные математические и строковые функции. Операции и выражения языка. Блоки данных и подпрограммы. Операторы управления, цикла, ввода-вывода и преобразования информации. Константы, переменные, массивы.

    контрольная работа [2,3 M], добавлен 04.05.2015

  • Переменные и операции языка СИ: используемые символы, константы, идентификаторы и ключевые слова. Использование комментариев в тексте программы. Типы данных и их объявление. Приоритеты операций и порядок вычислений. Функции, переменные, макроподстановки.

    учебное пособие [135,0 K], добавлен 17.02.2012

  • Стёковая организация памяти как главная идея языка Форт. Вычислительная модель, лежащая в его основе. Особенности работы со стёком памяти. Константы, переменные и работа с памятью. Организация диалога в Форте. Организация памяти и организация подпрограмм.

    курсовая работа [29,9 K], добавлен 29.01.2010

  • Автоматизированные базы данных в учебном процессе. Создание базы данных для МОУ СОШ № 12 с целью помощи в обеспечении централизованного управления, хранения информации об учениках. Требования к программе, условия эксплуатации. Программный код базы данных.

    дипломная работа [2,0 M], добавлен 25.03.2014

  • Вычисление значения функции с помощью программирования. Рабочий набор исходных данных. Таблица идентификаторов, текст программы, контрольный расчет. Подключение модуля, объявление константы и переменных вещественного типа. Шаг изменения аргумента.

    контрольная работа [118,4 K], добавлен 28.09.2012

  • Элементы языка Object Pascal: идентификаторы, константы, переменные, выражения. Структура проекта Delphi. Операторы и метки. Типы данных языка OPascal. Статические и динамические массивы. Записи с вариантными полями. Совместимость и преобразование типов.

    курс лекций [385,4 K], добавлен 18.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.