C - Literals: A Beginner's Guide

Здравствуйте, будущие программисты! Сегодня мы отправимся в увлекательное путешествие в мир программирования на языке C, конкретно focusing на literals. Не волнуйтесь, если вы никогда раньше не писали код – я буду вашим дружелюбным проводником, и мы будем двигаться шаг за шагом. К концу этого руководства вы будете удивлены, сколько вы узнали!

C - Literals

Что такое Literals?

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

Теперь давайте рассмотрим разные типы literals в C!

Целочисленные Literals в C

Целочисленные literals – это целые числа без десятичных знаков. В C мы можем представлять целые числа по-разному. Давайте посмотрим на несколько примеров:

int a = 42;        // Десятичный (база 10)
int b = 052;       // Восьмеричный (база 8)
int c = 0x2A;      // Шестнадцатеричный (база 16)
int d = 0b101010;  // Двоичный (база 2, C99 и далее)

В этом коде:

  • 42 – это десятичный literал (то, что мы используем в повседневной жизни)
  • 052 – это восьмеричный literal (обратите внимание на ведущий 0)
  • 0x2A – это шестнадцатеричный literal (обратите внимание на ведущий 0x)
  • 0b101010 – это двоичный literal (обратите внимание на ведущий 0b)

Все эти literals представляют одно и то же значение: 42 в десятичной системе. Не fascinates ли, как числа могут надевать разные "костюмы"?

Сuffixes для целочисленных Literals

Мы также можем добавлять suffixes к целочисленным literals, чтобы указать их тип:

int e = 42L;    // Long int
int f = 42U;    // Unsigned int
int g = 42UL;   // Unsigned long int
int h = 42LL;   // Long long int (C99 и далее)

Эти suffixes помогают компилятору понять, с каким типом целого числа мы имеем дело.

Плавающие literals в C

Теперь давайте перейдем к миру десятичных чисел! Плавающие literals – это числа с десятичными знаками. Вот несколько примеров:

float pi = 3.14159;
double avogadro = 6.022e23;  // Научная запись
long double planck = 6.62607015e-34L;  // С suffix L для long double

В этом коде:

  • 3.14159 – это простой плавающий literal
  • 6.022e23 использует научную запись (e23 означает × 10^23)
  • 6.62607015e-34L – это literal long double (обратите внимание на suffix L)

Помните, что плавающие literals имеют по умолчанию двойную точность. Если вы хотите float, вы можете использовать suffix F:

float f = 3.14F;

Символьные literals в C

Символьные literals в C заключены в одинарные кавычки. Они представляют один символ. Давайте рассмотрим несколько примеров:

char grade = 'A';
char newline = '\n';
char smiley = '\u263A';  // Unicode символ (C99 и далее)

В этом коде:

  • 'A' – это простой символьный literal
  • '\n' – это специальный символ (новая строка)
  • '\u263A' – это Unicode символ (улыбающееся лицо ☺)

Escape sequences в C

Иногда нам нужно представлять символы, которые нельзя ввести напрямую. Вот где на помощь приходят escape sequences. Они всегда начинаются с обратной косой черты (). Вот таблица.common escape sequences:

Escape Sequence Meaning
\n Newline
\t Tab
\ Backslash
\' Single quote
\" Double quote
\0 Null character

Давайте посмотрим на них в действии:

char newline = '\n';
char tab = '\t';
char backslash = '\\';
char single_quote = '\'';
char double_quote = '\"';
char null_char = '\0';

printf("Hello\tWorld!\nThis is a backslash: \\\nAnd a quote: \'");

Этот код выведет:

Hello   World!
This is a backslash: \
And a quote: '

Строковые literals в C

Последнее, но не менее важное, давайте поговорим о строковых literals. В C строковые literals – этоsequence из символов, заключенных в двойные кавычки. Вот несколько примеров:

char* greeting = "Hello, World!";
char* multiline = "This is a\n"
"multi-line\n"
"string literal.";
char* unicode = u8"This is a Unicode string: \u263A";  // C11 и далее

В этом коде:

  • "Hello, World!" – это простой строковый literal
  • Многострочный строковый literal показывает, как мы можем разбивать длинные строки на несколько строк
  • Строковый literal с Unicode демонстрирует, как включать Unicode символы в строки

Помните, что в C строковые literals на самом деле являются массивами символов, оканчивающимися нулевым символом ('\0').

Заключение

Поздравляю! Вы только что сделали свои первые шаги в мир программирования на языке C, узнав о literals. Этиfundamental building blocks будут иметь решающее значение по мере вашего продолжения программирования.

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

Счастливого кодирования, и до下一次 встречи, продолжайте исследовать fascinates мир C!

Credits: Image by storyset