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. Статичность теперь преобразуется в обычную переменную
							 |