You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Переменные в языке Си. Объявление переменной в Си
2
2
3
-
Чтобы хранить в своей программе какие-либо данные, вам понадобятся переменные. Прежде всего, нужно научиться эти переменные в программе создавать. Другими словами, вспоминая нашу аналогию с коробками, чтобы в коробку что-то положить, её, эту самую коробку, хорошо бы сначала где-нибудь раздобыть.
3
+
Теперь мы знаем, что для хранения в программе каких либо данных, нам потребуются переменные. Тогда, прежде всего, нужно научиться эти переменные в программе создавать. Другими словами, вспоминая нашу аналогию с коробками, чтобы в коробку что-то положить, её, эту самую коробку, хорошо бы сначала где-нибудь раздобыть.
4
4
5
-
В книжках по программированию процесс создания переменной называют `объявлением переменной`. Это словосочетание хорошо бы знать, чтобы понимать профессиональную литературу и речь других программистов. Но ещё более важно понимать, что за этим словосочетанием скрывается.
5
+
В книжках по программированию процесс создания переменной называют =объявлением переменной=. Это словосочетание хорошо бы знать, чтобы понимать профессиональную литературу и речь других программистов. Но ещё более важно понимать, что за этим словосочетанием скрывается.
6
6
7
7
## Как объявить переменную?
8
-
Для того чтобы объявить переменную, необходимо указать её тип и записать её имя. Ну и не забыть поставить `;`. Общая стуктура объявления переменной показана на следующем рисунке.
8
+
Для того чтобы объявить переменную (создать переменную в программе), необходимо, в самом простейшем случае, указать:
9
+
- тип данных, которые будут храниться в переменной;
И, конечно, не забыть поставить `;` в конце объявления.
13
+
14
+
Общая стуктура объявления переменной показана на следующем рисунке.
15
+
16
+

11
17
12
18
В примере на рисунке мы создаём переменную с именем `num`, в которой можно будет хранить целые числа. На то, что мы собираемся использовать переменную для хранения целых чисел, указывает тип данных `int`.
13
19
14
-
Ещё парочка примеров:
20
+
Вот ещё парочка примеров:
15
21
16
22
Листинг 1. Объявление переменных
17
23
```c
18
-
int z; // переменная z целого типа
19
-
char w; // переменная w символьного типа
24
+
int z; // переменная z для хранения целых чисел
25
+
char w; // переменная w для хранения символов
20
26
```
21
27
22
28
Для имён переменных есть одно правило, которое надо будет запомнить.
23
29
24
-
В качестве имени переменной может выступать любая последовательность символов латинского алфавита, цифр и знака нижнего подчеркивания `_`, которая начинается с буквы.
30
+
% **Важно:**
31
+
В качестве имени переменной может выступать любая последовательность символов латинского алфавита (`a-z` и `A-Z`), цифр (`0-9`) и знака нижнего подчеркивания `_`, которая начинается с буквы или подчёркивания, но не с цифры.
25
32
26
33
На самом деле, на имя переменной есть дополнительные ограничения, но мы пока в такие детали вдаваться не будем. Давайте лучше посмотрим на примеры допустимых и недопустимых имён.
@@ -37,7 +45,9 @@ number flat // содержит пробел в имени
37
45
nomer-telefona // содержит дефис
38
46
```
39
47
40
-
И ещё один важный момент. В языке программирования Си регистр букв очень важен. Например, переменные с именами `flag`, `FLAG`, `FlAg`, `fLAg` -- это всё различные переменные. Кроме того, есть ряд слов, которые нельзя использовать для названия переменных. Например, `int`, `void`, `return` и другие. Это специальные ключевые слова, которые зарезервированы для нужд самого языка и нигде в другом месте не могут быть использованы.
48
+
И ещё один важный момент. В языке программирования Си **регистр букв очень важен**. Например, переменные с именами `flag`, `FLAG`, `FlAg`, `fLAg` -- это всё различные переменные.
49
+
50
+
Кроме того, есть ряд слов, которые нельзя использовать для названия переменных. Например, `int`, `char`, `float`, `void`, `return` и другие. Это специальные ==ключевые слова==, которые зарезервированы для нужд самого языка и нигде в другом месте не могут быть использованы.
41
51
42
52
Кстати, за одно объявление можно создать сразу несколько переменных одного типа.
43
53
@@ -47,19 +57,19 @@ int a, c; // объявляем переменные a и c целого тип
47
57
double x, y, z; // объявляем сразу три вещественные переменные
48
58
```
49
59
50
-
Всё просто и логично. Сначала указывает тип переменных, а потом их имена, разделённые запятой.
60
+
Всё просто и логично. Сначала указываем тип переменных, а потом их имена, разделённые запятой.
51
61
52
62
## Переменная в памяти компьютера.
53
63
Пару слов о том, как выглядит объявление переменной с точки зрения компьютера.
54
64
55
-
Можно считать, что при объявлении мы сообщаем компьютеру, чтобы он выделил под переменную место в памяти и связал это место определенным именем. Количество места, которое будет выделено в памяти для хранения переменной, зависит от типа этой переменной. Проиллюстрируем эту мысль следующим рисунком.
65
+
Можно считать, что при объявлении мы сообщаем компьютеру, чтобы он выделил под переменную место у себя в памяти и связал это место определенным именем. Количество места, которое будет выделено в памяти для хранения переменной, зависит от типа этой переменной. Проиллюстрируем эту мысль следующим рисунком.
56
66
57
67
Листинг 3. Объявление двух переменных
58
68
```c
59
69
int w; // объявляем целочисленной переменной w
60
70
double z; // объявляем вещественной переменной z
61
71
```
62
72
63
-

73
+

64
74
65
75
На рисунке условно изображена память компьютера как набор ячеек, в каждой из которых может что-то храниться. При этом вещественная переменная занимает две ячейки, а целочисленная всего одну. Это соотношение (два к одному) условное. На самом деле, в вашем компьютере переменная вещественного типа может занимать, например, в четыре раза больше места в памяти, чем целочисленная переменная.
- Объявите в программе переменную с неправильным именем и попробуйте скомпилировать программу. Посмотрите, какую ошибку выдаст компилятор.
8
12
9
-
- Найдите список всех ключевых слов языка Си. Можно искать в стандарте языка(подсказка: "keywords"), а можно в интернете. Запоминать наизусть их не нужно, но разок посмотреть на них стоит.
13
+
- Найдите список всех ключевых слов языка Си. Можно искать в стандарте языка (подсказка: "keywords"), а можно в интернете. Запоминать наизусть их не нужно, но разок посмотреть на них стоит.
14
+
15
+
- Кстати, если вы нашли различные стандарты, то вы заметите, что список ключевых слов будет немного различаться (чем новее стандарт, тем больше зарезервированных ключевых слов). Как думаете, с чем это связано?
1. В ваших программах не стесняйтесь давать переменным длинные имена. Хорошо, если по имени переменной можно будет сразу понять, что в ней хранится. Есть два основных способа записи длинных имён переменных: ВерблюжьяНотация и змеиная_нотация. Подробнее о плюсах и минусах обоих подходов можно почитать по следующим ссылкам: [Хабрахабр](https://habrahabr.ru/post/113044/) и [Типичный программист](https://tproger.ru/translations/camelcase-vs-underscores-scientific-showdown/).
3
+
1. В ваших программах не стесняйтесь давать переменным длинные, осмысленные ("говорящие") имена. Считается хорошим тоном, если по имени переменной можно сразу понять, что в ней хранится. Есть два основных способа записи длинных имён переменных: `CamelCase`ВерблюжьяНотация и `snake_case`змеиная_нотация. Подробнее о плюсах и минусах обоих подходов можно почитать по следующим ссылкам: [Хабрахабр](https://habrahabr.ru/post/113044/) и [Типичный программист](https://tproger.ru/translations/camelcase-vs-underscores-scientific-showdown/).
4
+
5
+
6
+
2. В программах на Си обычно используют `snake_case`. В примерах этого Курса я тоже буду использовать эту нотацию, когда в этом будет необходимость.
0 commit comments