120 lines
8.5 KiB
Markdown
120 lines
8.5 KiB
Markdown
|
---
|
|||
|
title: Variables
|
|||
|
localeTitle: переменные
|
|||
|
---
|
|||
|
Давайте обсудим что-то знакомое как переменные. Переменные напоминают ведро. Вы можете положить что-то в него, а затем изменить его после чего, когда это необходимо. В C ++ существует много типов переменных, таких как целые числа, строки, булевы и многие другие. Давайте рассмотрим простую программу с использованием целочисленных переменных. Целые числа хранят целые числа, положительные, отрицательные или нулевые. Целые числа не являются дробными числами, например, 1/2, 1/4 и 1/5. Давайте рассмотрим простую программу, которая использует целое число переменная.
|
|||
|
|
|||
|
```cpp
|
|||
|
#include <iostream>
|
|||
|
using namespace std ;
|
|||
|
int main()
|
|||
|
{
|
|||
|
int a; // Declare an integer variable a
|
|||
|
a = 5; // Assign value of 5 to variable a
|
|||
|
cout << a; // Display the value of variable a which contains 5
|
|||
|
return 0;
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Когда вы выполняете эту программу, вы увидите 5 на экране
|
|||
|
|
|||
|
* Обратите внимание, что в указанной выше программе // помещается после строк. Символ «//» предназначен для комментирования нашего кода. Код после символа «//» не выполняется в строке, где она помещена.
|
|||
|
|
|||
|
* В строке 5 объявлена простая целочисленная переменная.
|
|||
|
|
|||
|
* В строке 6 значение 5 присваивается переменной a. Теперь, когда мы используем переменную a в нашей программе, ее значение будет равно 5 если мы не изменим его.
|
|||
|
|
|||
|
* В строке 7 отобразится значение переменной a и 5 на экране.
|
|||
|
|
|||
|
|
|||
|
### Объем переменных
|
|||
|
|
|||
|
Все переменные имеют свою область функционирования, и из этой границы они не имеют своей ценности, эта граница называется областью действия переменной. В большинстве случаев его между фигурными фигурными скобками, в которых объявляется переменная, существует переменная, а не вне ее. Мы изучим классы хранения позже, но на данный момент мы можем разделить переменные на два основных типа,
|
|||
|
|
|||
|
\* Глобальные переменные.
|
|||
|
|
|||
|
\* Локальные переменные.
|
|||
|
|
|||
|
#### Глобальные переменные
|
|||
|
|
|||
|
Глобальные переменные - это те, которые объявлены и могут использоваться на протяжении всего жизненного цикла программы любым классом или любой функцией. Они должны быть объявлены вне функции main (). Если объявлено только, они могут быть назначены разные значения в разное время в жизни программы. Но даже если они объявлены и инициализированы одновременно за пределами функции main (), тогда также им может быть присвоено любое значение в любой точке программы.
|
|||
|
|
|||
|
Пример: Только объявлено, а не инициализировано.
|
|||
|
|
|||
|
```cpp
|
|||
|
include <iostream>
|
|||
|
using namespace std;
|
|||
|
int x; // Global variable declared
|
|||
|
int main()
|
|||
|
{
|
|||
|
x=10; // Initialized once
|
|||
|
cout <<"first value of x = "<< x;
|
|||
|
x=20; // Initialized again
|
|||
|
cout <<"Initialized again with value = "<< x;`
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### Локальные переменные
|
|||
|
|
|||
|
Локальные переменные - это переменные, которые существуют только между фигурными фигурными скобками, в которых объявлено. Снаружи они недоступны и приводят к ошибке времени компиляции.
|
|||
|
|
|||
|
Пример :
|
|||
|
|
|||
|
```cpp
|
|||
|
include <iostream>
|
|||
|
using namespace std;
|
|||
|
int main()
|
|||
|
{
|
|||
|
int i=10;
|
|||
|
if(i<20) // if condition scope starts
|
|||
|
{
|
|||
|
int n=100; // Local variable declared and initialized
|
|||
|
} // if condition scope ends
|
|||
|
cout << n; // Compile time error, n not available here
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Теперь давайте прочитаем о новом типе переменных-
|
|||
|
|
|||
|
#### Статическая переменная
|
|||
|
|
|||
|
Статические переменные: когда переменная объявляется как статическая, пространство для нее распределяется на время жизни программы. Даже если функция вызывается несколько раз, пространство для статической переменной выделяется только один раз, а значение переменной в предыдущем вызове переносится через следующий вызов функции. Это полезно для реализации сопрограмм в C / C ++ или в любом другом приложении, где необходимо сохранить предыдущее состояние функции. В условиях неспециалиста это означает, что нормальная переменная, выходящая за пределы области, теряет свою идентичность (значение), но статическая переменная имеет глобальную область действия и сохраняет ее значение до конца программы, но в отличие от глобальной переменной нет необходимости объявлять ее при запуске программы.
|
|||
|
|
|||
|
#### экстра-
|
|||
|
|
|||
|
Static - это ключевое слово в C ++, используемое для предоставления специальных характеристик элементу. Статические элементы выделяются хранилищем только один раз в течение жизненного цикла программы в области статического хранения. И у них есть объем до срока службы программы.
|
|||
|
|
|||
|
#### КОД-
|
|||
|
```
|
|||
|
#include <iostream>
|
|||
|
#include <string>
|
|||
|
using namespace std;
|
|||
|
|
|||
|
void howstaticworks()
|
|||
|
{
|
|||
|
static int count = 0; // static variable
|
|||
|
cout << count << " ";
|
|||
|
|
|||
|
/* value is updated and
|
|||
|
will be carried to next
|
|||
|
function calls*/
|
|||
|
count++;
|
|||
|
}
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
for (int i=0; i<5; i++)
|
|||
|
howstaticworks();
|
|||
|
return 0;
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
#### Попробуйте сами
|
|||
|
|
|||
|
просто скопируйте код и вставьте его в указанную ссылку. Запуск на IDE-https://ideone.com/
|
|||
|
|
|||
|
Вывод: 0 1 2 3 4
|
|||
|
|
|||
|
Вы можете видеть в приведенной выше программе, что счетчик переменных считается статическим. Таким образом, его значение переносится через вызовы функций. Счетчик переменных не получает инициализацию за каждый раз, когда вызывается функция.
|
|||
|
|
|||
|
Давайте дадим тот же код попробовать, удалив «статическое» ключевое слово и угадав вывод и сравним его с одним из IDE. Статичность теперь преобразуется в обычную переменную
|