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

C_logo
Предыдущая часть – Курс C с нуля: часть 4 – токены и ключевые слова.

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

Синтаксис

const data_type variable_name;

или:

const data_type *variable_name;

Типы констант в C

  1. целочисленные константы;
  2. действительные константы;
  3. константы с плавающей точкой;
  4. восьмеричные и шестнадцатеричные константы;
  5. символьные константы;
  6. строковые константы;
  7. escape-последовательности.
Тип константы Тип данных Пример
1 Численные константы int
unsigned int
long int
long long int
53, 762, -478 etc
5000u, 1000U etc
483,647
2,147,483,680
2 Вещественные константы и константы с плавающей точкой float
doule
10.456789
600.123456789
3 Восьмиричные константы int 013          /* starts with 0  */
4 Шестнадцатеричные константы int 0×90        /* starts with 0x */
5 Символьные константы  char ‘A’   ,   ‘B’,     ‘C’
6 Строковые константы char “ABCD”   ,   “Hai”

Правила определения констант в C

1. Целочисленные константы в C

  • должна содержать как минимум одну цифру;
  • не должна содержать десятичного разделителя;
  • может быть как положительным так и отрицательным числом;
  • недопустимо использование запятых или пробелов;
  • если перед числом не указан знак – оно будет считаться положительным;
  • допустимый диапазон значений от -32768 до 32767.

2. Действительные константы в C

  • должна содержать как минимум одну цифру;
  • должна содержать десятичный разделитель;
  • может быть как положительным так и отрицательным числом;
  • недопустимо использование запятых или пробелов;
  • если перед числом не указан знак – оно будет считаться положительным.

3. Символьные и строковые константы в C

  • символьная константа хранит одну букву, одну цифру или один спецсимвол, заключенные в одинарные кавычки;
  • максимальная длина символьной константы 1 символ;
  • строковые константы заключаются в двойные кавычки.

4. Escape-последовательности в C

  • в C имеются специальные символы, начинающиеся с символа обратной косой черты ;
  • в таблице ниже предоставлены основные из них:
Backslash_character Meaning
b Backspace
f Form feed
n New line
r Carriage return
t Horizontal tab
Double quote
Single quote
\ Backslash
v Vertical tab
a Alert or bell
? Question mark
N Octal constant (N is an octal constant)
XN Hexadecimal constant (N – hex.dcml cnst)

Как использовать константы в C?

Константа может быть определена так:

  1. с помощью ключевого слова “const“;
  2. с помощью директивы препроцессора “#define“;
  • Помните, что значения констант должны оставаться неизменными в течении работы программы. Попытка изменить значение константы приведет к возникновению ошибки.

1. Пример программы на C с использованием ключевого слова const

#include <stdio.h>

void main() {

	const int height = 100;             /*int constant*/
	const float number = 3.14;   /*Real constant*/
	const char letter = 'A';           /*char constant*/
	const char letter_sequence[10] = "ABC";           /*string constant*/
	const char backslash_char = '?';                          /*special char cnst*/

	printf("value of height :%d n", height );
	printf("value of number : %f n", number );
	printf("value of letter : %c n", letter );
	printf("value of letter_sequence : %s n", letter_sequence);
	printf("value of backslash_char : %c n", backslash_char);

}

Результат ее выполнения:

$ ./const
value of height :100
value of number : 3.140000
value of letter : A
value of letter_sequence : ABC
value of backslash_char : ?

1. Пример программы на C с использованием директивы #define

#include <stdio.h>

#define height 100
#define number 3.14
#define letter 'A'
#define letter_sequence "ABC"
#define backslash_char '?'

void main() {

	printf("value of height : %d n", height );
	printf("value of number : %f n", number );
	printf("value of letter : %c n", letter );
	printf("value of letter_sequence : %s n",letter_sequence);
	printf("value of backslash_char : %c n",backslash_char);

}

Результат:

$ ./constdef
value of height : 100
value of number : 3.140000
value of letter : A
value of letter_sequence : ABC
value of backslash_char : ?

Следующая часть – Курс C с нуля: часть 6 – переменные.