109 lines
9.5 KiB
Markdown
109 lines
9.5 KiB
Markdown
---
|
||
title: Variables in C
|
||
localeTitle: Переменные в C
|
||
---
|
||
# Использование переменных в C
|
||
|
||
Теперь вы знаете, какие у вас варианты с типами данных. Давайте применим это с простым примером здесь:
|
||
|
||
```C
|
||
#include <stdio.h>
|
||
|
||
int main(void) {
|
||
int my_first_variable = 12;
|
||
double my_second_variable = 983.9;
|
||
|
||
printf("My int is %i\n", my_first_variable);
|
||
printf("My double is %f\n", my_second_variable);
|
||
|
||
return 0;
|
||
}
|
||
```
|
||
|
||
Здесь есть много нового, что можно посмотреть здесь! Вы уже видели `#include` и `int main(void)` , так что не стоит останавливаться на них. Что нового: `int my_first_variable = 12;` ,
|
||
|
||
С самого начала вы должны помнить, что `int` позволяет хранить целочисленные значения. После слова `int` приходит `my_first_variable` . Это переменная - она может хранить значения, и вы можете изменить, какие значения хранятся в ней. Начнем с объявления, где мы говорим компьютеру, что начальное значение этой переменной равно 12. Важно сообщить компьютеру, что мы хотим, чтобы переменная существовала до того, как мы попытаемся ее использовать. В противном случае переменная не будет существовать, и компилятор не будет знать, что делать, когда вы пытаетесь сказать ей использовать переменную, которая не существует.
|
||
|
||
Следующая строка - `double my_second_variable = 983.9` . В подобной структуре из ранее должно быть ясно, что вы говорите компьютеру о создании переменной, называемой «моя _вторая_ переменная», которая может содержать `double` значения и что вы хотите установить ее на 983.9.
|
||
|
||
Фактическое имя переменной не важно. Это может быть то, что вы хотите, если это не слова, которые C зарезервировал для реального языка, и он может включать только числа и буквы, никогда не пробелы. Имя переменной не может начинаться с числа. По соглашению, C использует чистые имена переменных, которые заменяют символы подчеркивания для пробелов. Переменной может быть также camelCase, например:
|
||
|
||
```C
|
||
double myFirstVariable = 983.9
|
||
```
|
||
|
||
Фактически, это было бы так на других языках. Однако в C это обычно не делается.
|
||
|
||
После того, как переменные создаются, мы фактически начнем их использовать:
|
||
|
||
```C
|
||
printf("My int is %i\n", my_first_variable);
|
||
printf("My double is %f\n", my_second_variable);
|
||
```
|
||
|
||
Это тот же самый printf (), который вы использовали ранее, но теперь он имеет несколько разных функций. Во-первых, обратите внимание, что в круглой скобке есть две вещи: текст для печати на экране и переменная. Также обратите внимание на `%i` и `%f` . Это называется _спецификатором формата_ и используется для указания формата, в котором что-то должно быть напечатано. Всякий раз, когда printf () встречается с одним из них, он попытается вставить указанную переменную в эту точку.
|
||
|
||
Поскольку типы данных наших переменных представлены на компьютере несколькими различными способами, для отображения их можно указать несколько разных способов:
|
||
|
||
Тип данных | Спецификатор формата ---------------- | ------------------ char | % c, или% hhi для печати в виде числа при подписании,% hhu для печати в виде числа, когда unsigned короткие | % hi, или% hu, когда unsigned int | % i,% d также можно использовать долго | % li, или% lu, когда unsigned длинный длинный | % lli, или% llu, когда unsigned поплавок | % е двойной | % е длинный двойной | % Lf unsigned int | % лу
|
||
|
||
Чтобы напечатать переменную, у вас должен быть спецификатор формата, а затем переменная для форматирования. Несколько спецификаторов формата могут быть вместе в одном и том же printf ():
|
||
|
||
```C
|
||
printf("%i and %f", my_first_variable, my_second_variable);
|
||
```
|
||
|
||
Чтобы сканировать переменную, у вас должен быть спецификатор формата, а затем адрес переменной (обозначается добавлением «&» перед именем переменной) для ввода. Несколько спецификаторов формата могут быть вместе в одном и том же scanf ():
|
||
|
||
```C
|
||
scanf("%i and %f", &my_first_variable, &my_second_variable);
|
||
```
|
||
|
||
Теперь давайте начнем изменять значения внутри наших переменных. Вот те же примеры из предыдущих, но с несколькими строками:
|
||
|
||
```C
|
||
#include <stdio.h>
|
||
|
||
int main(void) {
|
||
int my_first_variable = 12;
|
||
double my_second_variable = 983.9;
|
||
|
||
printf("My int is %i\n", my_first_variable);
|
||
printf("My double is %f\n", my_second_variable);
|
||
|
||
my_second_variable = -18.2 + my_first_variable;
|
||
|
||
printf("Now my double is %f\n", my_second_variable);
|
||
|
||
return 0;
|
||
}
|
||
```
|
||
|
||
Теперь есть строка, которая читает `my_second_variable = -18.2 + my_first_variable;` , Это уравнение присваивает новое значение переменной слева. Всякий раз, когда назначается новое значение, переменная, которую он назначает, всегда должна быть слева и всегда должна быть там одна. Ваша программа найдет результат правой стороны и назначит ее переменной слева. В этом случае мы добавили мою _первую_ переменную в -18.2. моя _первая_ переменная равна 12, а -18.2 + 12 - -6.2, поэтому моя _вторая_ переменная становится -6.2 после этого шага. Мы немного поработаем в математике!
|
||
|
||
## Немного больше о поплавках и парных
|
||
|
||
При печати поплавков и удвоений много раз нам нужна точность после десятичной точки. Если у нас есть
|
||
|
||
```C
|
||
float var1 = 15.3;
|
||
printf("%f");
|
||
```
|
||
|
||
Мы получаем `15.300000` . Итак, скажем, мы просто хотим, чтобы два места после десятичной даты дали нам `15.30` . Мы использовали бы% .2f. Обратите внимание: мы используем десятичную точку перед количеством десятичных знаков, за которым следует f, и мы хотим напечатать float или double.
|
||
|
||
# Имена переменных
|
||
|
||
* Единственными символами, которые вы можете использовать в именах, являются алфавитные символы, числовые цифры и символ подчеркивания (\_).
|
||
* Первый символ в имени не может быть числовой цифрой.
|
||
* Верхние символы считаются отличными от символов нижнего регистра.
|
||
* Вы не можете использовать ключевое слово C для имени.
|
||
|
||
# Прежде чем продолжить ...
|
||
|
||
## Обзор
|
||
|
||
* Переменные должны быть созданы до их использования.
|
||
* Переменные создаются в следующем формате: `datatype variable_name = number` .
|
||
* Спецификаторы формата позволяют печатать переменные.
|
||
* Знак равенства `=` позволяет присваивать значения переменным. |