Константы в c: Курс C с нуля: часть 5 – константы

Содержание

Константы в C

Константы — это параметры или переменные внутри компьютерного языка C / C ++, которые, как следует из названия, нельзя изменить после их указания. Это программно эндогенные переменные. Константа — это атрибут или элемент в программе, который нельзя изменить, например 40, 67, x, 7.4, «Java-программирование» и т.д. В языке C существует несколько видов констант, например, целые, символьные, строковые и многие другие.

Эти константы можно представить двумя способами:

  • Ключевое слово Const
  • #define препроцессор

Чтобы работать с константами, мы должны сначала смонтировать некоторый компилятор языка C в операционной системе Linux. Итак, мы использовали компилятор языка C «GCC» с помощью команды apt. После входа в систему откройте терминал с помощью сочетания клавиш «Ctrl + Alt + T». Выполните указанный ниже запрос, чтобы установить «GCC».

$ sudo apt install gcc

Содержание

  1. Постоянная переменная
  2. # Определить препроцессор
  3. Заключение

Постоянная переменная

После монтирования компилятора «GCC» мы готовы работать с константами. Ключевое слово «const» будет использоваться для указания переменной как константы, что означает, что значение этой константы не может быть изменено. Итак, после открытия терминала создайте новый файл типа C test.c с помощью команды редактора Nano следующим образом:

$ nano test.c

Этот запрос откроет редактор nano с именем файла, указанным вверху. Теперь нам нужно использовать приведенный ниже код в нашем файле. Этот код имеет один заголовочный файл и одну основную функцию. Основная функция содержит одну переменную типа float «val» со ​​значением «3,22». Эта переменная была указана как постоянная с использованием ключевого слова «const» в начале. Затем оператор печати использовался для печати значения постоянной переменной «val», и основная функция будет закрыта. Общий синтаксис для спецификации постоянной переменной сформулирован следующим образом:

Постоянный тип-переменной имя-переменной = значение-переменной;

После сохранения файла с помощью «Ctrl + S» выйдите из файла с помощью сочетания клавиш «Ctrl + X». Теперь мы должны сначала скомпилировать приведенный выше код с помощью компилятора «gcc». Поэтому напишите запрос ниже, чтобы сделать это вместе с именем файла.

$ gcc test.c

Чтобы увидеть результат для этого скрипта языка C, вы должны попробовать команду «a.out» следующим образом:

$ ./a.out

Теперь попробуем изменить значение постоянной переменной val внутри кода. Для этого откройте файл с помощью ключевого слова «nano».

$ nano test.c

Давайте обновим значение переменной «val», присвоив в следующей строке «5.8». Все остальные строки кода останутся прежними. Нажмите Ctrl + S и Ctrl + X, чтобы сохранить и закрыть файл соответственно.

Давайте снова скомпилируем файл test.c, используя команду компиляции «gcc» ниже. Вы получите сообщение об ошибке «присвоение переменной только для чтения». Это означает, что вы не можете изменить значение уже определенной постоянной переменной.

Когда мы снова пытаемся выполнить файл, он будет выводить то же старое значение переменной «val» из-за ключевого слова «const» и не будет обновлять его новым.

# Определить препроцессор

Другой способ определения переменных как констант — использование препроцессора «#define». Чтобы указать константу или микрозаместитель, мы должны отказаться от директивы кода препроцессора #define. Можно использовать любой простой тип данных. Общий синтаксис препроцессора #define следующий:

#define variable-name variable-value

Итак, давайте рассмотрим простой пример #define в нашей системе Ubuntu 20.04 Linux. Откройте командную оболочку и напишите следующую команду, чтобы создать новый файл редактора nano для написания программы C:

$ nano test.c

Мы должны создать такой же код, как показано на изображении ниже. Этот программный сценарий C содержит один заголовок и один основной метод. Мы использовали переменную препроцессора «val» #define с некоторым значением «3. 22» перед основным методом и после файла заголовка. Основная функция содержит один оператор печати, показывающий значение постоянной переменной val. Сохраните, а затем закройте файл, используя сочетания клавиш.

Пришло время скомпилировать сохраненный код. Используйте для этого старый запрос «gcc», как указано ниже.

$ gcc test.c

Мы должны запустить код с помощью инструкции «a.out». Вывод кода показывает значение переменной константы вместе с некоторыми предложениями.

$ ./a.out

Давайте рассмотрим другой пример постоянной переменной с использованием препроцессора #define. Для этого откройте файл «test.c» с помощью команды «nano» в оболочке.

$ nano test.c

На этот раз мы попробовали новый способ понять #define. Мы указали #define при использовании двух переменных, «x» и «y», в функции MAX, чтобы проверить, какая из этих переменных имеет большее значение. Мы также использовали выражение для выполнения функции MAX как «((x)> (y)? (X): (y))». После этого была указана основная функция без возвращаемого типа. Эта основная функция содержит один оператор печати, который будет принимать оба числа в скобках функции MAX и сообщать нам о большем из них.

После сохранения и закрытия этого файла с помощью сочетаний клавиш, давайте скомпилируем файл test.c с запросом компилятора «gcc» в оболочке терминала, как указано ниже:

$ gcc test.c

Чтобы проверить вывод вышеуказанного кода, мы должны запустить скомпилированный файл test.c. Для этой цели мы будем использовать запрос «a.out», как указано ниже. Выходные данные снимка показывают, что эта программа может принимать постоянные значения и решать, какое из значений переменной больше, например 67.

$ ./a.out

Заключение

Наконец, мы проделали отличную работу, рассмотрев два способа представления констант в нашем руководстве, например, ключевое слово «const» и препроцессор «#define». Мы считаем, что этой статьи будет достаточно, чтобы полностью разобраться в константах.

c — Символьные константы в языке Си

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

int const a = 5;

Такое объявление и описание не вызывает особых трудностей для понимания. Что же подразуемвается под символьной константой? Языком лысого ёжика, это числовой код, которому соответствует символьное отображение (ASCII-код). Но что здесь является константой; в чем выражается неизменность? Что каждому символу соответствует данный код? Но как мы его изменим? Ведь язык не допускает такую конструкцию:

'a' = 666;

Вопрос, на которого я требую ответа: «В чем выражается неизменность символьных констант?»

  • c
  • символы
  • ansi

1

Термин константа в языке С имеет строгое определение. По определению, термин константа обозначает именно и только буквальные литеральные значения: 25, 'f', 0x13, 3.1415. Также термин константа в языке С распространяется на члены перечислений, результат _Alignof и sizeof (с некоторыми исключениями). Это все.

Объекты, объявленные со спецификатором const, константами в языке С не являются. Ваше

int const a = 5;

это ни в коем случае не константа в языке С (!). Это просто, скажем так, «немодифицируемая переменная».

Важность правильного понимания термина константа

обуславливается тем, что ряд контекстов в языке С требует использования именно констант и константных выражений. Например, инициализатор для статического объекта должен быть именно константой. Ваше a в этой роли использовать не получится

int const a = 5;
static int x = a; // Ошибка - инициализатор не константен

Символьными константами в С называются константы вида 'a' (также сюда можно причислить мультисимвольные константы вида 'abc'). Они не являются lvalue. Не существует никаких корректных конструкций языка С, которые могли бы их изменить. В этом и заключается их «неизменность». То есть вторая часть вашего вопроса действительно содержит правильный ответ. Невозможно «изменить» то, что не является lvalue.

0

Символьная константа – это некоторый символ алфавита, заключенный в одиночные кавычки.

Значением символьной константы является целое число, равное ASCII коду данного символа. Символьная константа имеет тип int или char и размерно состовляет 16 или 8 бит, соответственно.

2

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

C Целочисленные константы | Microsoft Узнайте

Редактировать

Твиттер LinkedIn Фейсбук Электронное письмо

  • Статья
  • 2 минуты на чтение

Целочисленная константа — это десятичное (по основанию 10), восьмеричное (по основанию 8) или шестнадцатеричное (по основанию 16) число, представляющее целочисленное значение. Используйте целочисленные константы для представления целочисленных значений, которые нельзя изменить.

Syntax

integer-constant :
     decimal-constant integer-suffix opt
     octal-constant integer-suffix opt
     hexadecimal-constant integer-suffix opt

десятичная константа :
     ненулевая цифра
     десятичная константа цифра восьмеричная константа

0 :
     0
     octal-constant octal-digit

hexadecimal-constant

:
     hexadecimal-prefix hexadecimal-digit
     hexadecimal-constant hexadecimal-digit

шестнадцатеричный префикс : один из
     0x 0X

ненулевой разряд : один из
     1 2 3 4 5 9 0 1 0 6 8 80019 Octal-цикл : один из
0 1 2 3 4 5 6 7

Hexadecimal-цикл : один из
0 1 2 3 4 5 7 8
A B C D E F A B D E F A B C C D E F A B C D E F A B C C D E F A B D E F 9.
.

integer-suffix :
     unsigned-suffix

long-suffix opt
     unsigned-suffix long-long-suffix
     unsigned-suffix 64-bit-integer-suffix
     long-suffix unsigned-suffix opt
     long-long-suffix unsigned-suffix opt
     64-bit-integer-suffix

unsigned-suffix : one
U U

Long-Suffix : один из
L L

длинный длинный дофейный0020 : один из
     i64 I64

Суффиксы i64 и I64 относятся к Microsoft.

Целочисленные константы положительны, если им не предшествует знак минус ( ). Знак минус интерпретируется как унарный арифметический оператор отрицания.

(Информацию об этом операторе см. в разделе Унарные арифметические операторы.)

Если целочисленная константа начинается с 0x или 0X , она является шестнадцатеричной. Если он начинается с цифры 0 , восьмеричный. В противном случае он считается десятичным.

Следующие целые константы эквивалентны:

 28
0x1C /* = шестнадцатеричное представление десятичного числа 28 */
034 /* = восьмеричное представление десятичного числа 28 */
 

Пробелы не могут разделять цифры целочисленной константы. В этих примерах показаны некоторые допустимые десятичные, восьмеричные и шестнадцатеричные константы.

 /* Десятичные константы */
    интервал dec_int = 28;
    беззнаковое dec_uint = 4000000024u;
    длинный dec_long = 2000000022l;
    unsigned long dec_ulong = 4000000000ul;
    длинный длинный dec_llong = 

00000ЛЛ; unsigned long long dec_ullong =

0000001ull; __int64 dec_i64 =

00000002I64; без знака __int64 dec_ui64 =

000000004ui64; /* Восьмеричные константы */ интервал окт_инт = 024; без знака oct_uint = 04000000024u; long oct_long = 02000000022l; unsigned long oct_ulong = 04000000000UL; длинный длинный oct_llong = 044000000000000ll; unsigned long long oct_ullong = 044400000000000001Ull; __int64 oct_i64 = 04444000000000000002i64; без знака __int64 oct_ui64 = 04444000000000000004uI64; /* Шестнадцатеричные константы */ интервал hex_int = 0x2a; hex_uint без знака = 0XA0000024u; длинный hex_long = 0x20000022l; unsigned long hex_ulong = 0XA0000021uL; длинный длинный hex_llong = 0x8a000000000000ll; unsigned long long hex_ullong = 0x8A40000000000010uLL; __int64 hex_i64 = 0x4a44000000000020I64; беззнаковый __int64 hex_ui64 = 0x8a44000000000040Ui64;

См.

также

C-константы

Обратная связь

Отправить и просмотреть отзыв для

Этот продукт Эта страница

Просмотреть все отзывы о странице

Какой тип константы в C?

Когда мы пишем подобные выражения на C:

 bool b = 1234567890 > 09876;
 

Каковы типы этих констант? Номер 1234567890 — какой у него тип? Как C представляет его при компиляции? Язык программирования C говорит:

Целочисленная константа, такая как 1234 , является int . Константа long записывается с терминалом l (ell) или L , как в 123456789L ; целочисленная константа слишком велика, чтобы поместиться в int также будет восприниматься как long . Беззнаковые константы записываются с терминалом u или U , а суффикс ul или UL указывает длинное беззнаковое

.

Константы с плавающей запятой содержат десятичную точку ( 123.4 ) или показатель степени ( 1e-2 ) или и то, и другое; их тип double , если нет суффикса. Суффиксы f или F указывают на поплавок постоянная; л или л указать длинный двойной .

Вот несколько примеров:

 0 // int
0l // длинный
1234 // интервал
1234L // длинный
0ul // длинный без знака
0u // беззнаковое целое
2147483647 // целое (просто)
2147483648 // длинный
2147483647u // беззнаковое целое
2147483648u // unsigned long (но может поместиться в unsigned int)
0x0101010101010101ULL // длинный длинный без знака
 

Что могут компьютеры? Каковы пределы математики? И насколько занятым может быть занятой бобр? В этом году я пишу Занятых Бобров , уникальная интерактивная книга по теории вычислимости. Мы с вами применим практичный и современный подход к ответам на эти вопросы — или, по крайней мере, поймем, почему на некоторые вопросы нет ответов!

Это всего 19 долларов, и вы можете получить со скидкой 50% на , если найдете код скидки … Не совсем так. Хакеры используют консоль!

После месяцев тайного труда, Я и Эндрю Карр выпустили Everyday Data Science , уникальный интерактивный онлайн-курс! Вы сделаете идеальный стакан лимонада, используя сэмпл Томпсона. Вы похудеете с помощью дифференциальных уравнений. И вы могли бы просто претендовать на Олимпийские игры с небольшим количеством статистики!

Это 29 долларов, но вы можете получить со скидкой 50% на , если найдете код скидки … Не совсем так. Хакеры используют консоль!

Еще от Jim

  • У вас неправильная подсветка синтаксиса
  • Дедушка умер сегодня
  • Три Т: время, мысль и набор текста: измерение затрат в Интернете
  • Я ненавижу телефоны точки имеют значение: как обмануть пользователя Gmail
  • Мои родители плоскоземельцы
  • Чем интересны Hacker News
  • Проект C-43: утерянные истоки асимметричной криптографии
  • Цикл хакерской шумихи
  • Начальная планка: новый метод фишинга
  • Время уходит, чтобы поймать COVID-19
  • Вероятностная викторина для ботаников
  • Обманной фишинг: новая уязвимость Android

Отмечен .

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *