208 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			208 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Tokens Part 1
							 | 
						|||
| 
								 | 
							
								localeTitle: Токены Часть 1
							 | 
						|||
| 
								 | 
							
								---
### Что такое токены?
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Токены - это наименьшие единицы программы, которые важны для компилятора. Существуют различные виды токенов:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   Ключевые слова
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								*   операторы
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								*   знаки пунктуации
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								*   литералы
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								*   Идентификаторы
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								*   **Сочетание токенов формирует выражение**
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Что такое переменные?
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   Определение учебника: переменные называются ячейками памяти, данные которых могут быть изменены.
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								*   Но я хотел бы, чтобы вы подумали, что переменная будет чем-то вроде коробки, что-то вроде этого: 
							 | 
						|||
| 
								 | 
							
								    
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Так, например: Я перехожу на новое место, и мне нужно укладывать вещи в коробки. Таким образом, мне приходят две вещи. **Какие вещи будут храниться в ящике, так что размер с поля известен (тип данных)** и **как я могу определить поле? (Именование переменной)**  
							 | 
						|||
| 
								 | 
							
								Следовательно, мы знаем, что переменная в C ++ нуждается в _имени_ и _типе данных_ и что значение, хранящееся в них, может быть изменено.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Типы данных в C ++:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								При объявлении переменных в c ++ у них должно быть имя, на которое вы позже будете ссылаться, значение (константа или нет) и тип. Тип подскажет компилятору значения, которые может использовать переменная, возможные операции и сохранит определенное пространство в memmory. В c ++ существуют два типа данных:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   Простой тип
							 | 
						|||
| 
								 | 
							
								*   Тип структуры
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Простые типы данных
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   Boolean - bool Работает как переключатель, может быть включен или выключен.
							 | 
						|||
| 
								 | 
							
								*   Символ - символ Сохраняет один символ.
							 | 
						|||
| 
								 | 
							
								*   Integer - int Сохраняет [целое число](https://en.wikipedia.org/wiki/Integer) .
							 | 
						|||
| 
								 | 
							
								*   Плавающая точка - поплавок Они могут использовать десятичные знаки.
							 | 
						|||
| 
								 | 
							
								*   Двойная плавающая точка - двойная Двойная точность поплавкового типа.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Здесь вы можете увидеть несколько примеров:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								bool GameRunning = true; 
							 | 
						|||
| 
								 | 
							
								 char a; 
							 | 
						|||
| 
								 | 
							
								 int x = 2; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Эти типы также могут быть изменены с помощью таких модификаторов, как:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								подписанный неподписанный короткая длинный
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Тип данных структуры
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Идентификаторы.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   Идентификаторы - это имена, присвоенные переменной или классу или функции или любой функции, определенной пользователем.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## Правила для именования переменной:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   Начните именовать буквой из AZ или az.
							 | 
						|||
| 
								 | 
							
								*   Числа могут следовать за первой буквой, но мы не можем начинать именовать цифры.
							 | 
						|||
| 
								 | 
							
								*   НЕТ использования пробелов или специальных символов, вместо этого используйте UNDERSCORE \_.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Объявление переменной:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Синтаксис выглядит следующим образом < _тип данных_ > < _имя переменной_ >; или < _тип данных_ > < _имя переменной_ > = < _значение_ >; если мы также хотим инициализировать переменную.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Например : `cpp int a ; //declaring a variable named 'a' of type integer. a=4; //initializing a variable int b = 5 ; //declaring and initializing a variable 'b' of type integer.`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**Примеры объявления переменной:**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								int a9; 
							 | 
						|||
| 
								 | 
							
								 char A; 
							 | 
						|||
| 
								 | 
							
								 double area_circle; 
							 | 
						|||
| 
								 | 
							
								 long l; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**Неправильные способы объявления переменных** -
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								int 9a; 
							 | 
						|||
| 
								 | 
							
								 char -a; 
							 | 
						|||
| 
								 | 
							
								 double area of circle; 
							 | 
						|||
| 
								 | 
							
								 long l!!; 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   Имена переменных не могут начинаться с числа
							 | 
						|||
| 
								 | 
							
								*   Спецсимволы не допустимы
							 | 
						|||
| 
								 | 
							
								*   Пробелы не допускаются
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Вы можете представить себе различные коробки разных размеров и хранить разные вещи как разные переменные.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**ЗАМЕТКИ :**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								1.  **Компилятор C ++ игнорирует пробелы, и они обычно используются для улучшения кода, так что любой программист может отлаживать или понимать код.**
							 | 
						|||
| 
								 | 
							
								2.  **Если переменная не инициализирована, она содержит значение мусора. Позвольте мне привести пример:**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Объем переменных
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Все переменные имеют свою область функционирования, и из этой границы они не имеют своей ценности, эта граница называется областью действия переменной. В большинстве случаев его между фигурными фигурными скобками, в которых объявляется переменная, существует переменная, а не вне ее. Мы изучим классы хранения позже, но на данный момент мы можем разделить переменные на два основных типа,
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								\* Глобальные переменные.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								\* Локальные переменные.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Глобальные переменные
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Глобальные переменные - это те, которые объявлены и могут использоваться на протяжении всего жизненного цикла программы любым классом или любой функцией. Они должны быть объявлены вне функции 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 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Константные переменные
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Константная переменная - это переменные, которые нельзя изменить. Например, если вам нужен «pi» в вашем коде, вы не захотите изменить его после инициализации.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Пример :
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```cpp
							 | 
						|||
| 
								 | 
							
								#include <iostream> 
							 | 
						|||
| 
								 | 
							
								 using namespace std; 
							 | 
						|||
| 
								 | 
							
								 const double PI = 3.14159253; 
							 | 
						|||
| 
								 | 
							
								 int main() 
							 | 
						|||
| 
								 | 
							
								 { 
							 | 
						|||
| 
								 | 
							
								 //Calculating the area of a circle, using user provided radius 
							 | 
						|||
| 
								 | 
							
								 double radius; 
							 | 
						|||
| 
								 | 
							
								 //input and output explained in other guide 
							 | 
						|||
| 
								 | 
							
								 cin>>radius; 
							 | 
						|||
| 
								 | 
							
								 //pi*r^2 
							 | 
						|||
| 
								 | 
							
								 double area = PI*radius*radius; 
							 | 
						|||
| 
								 | 
							
								 cout<<area<<endl; 
							 | 
						|||
| 
								 | 
							
								 } 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Значения мусора в переменной
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Если переменная не инициализирована, она содержит значение мусора. Например:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Итак, с точки зрения ящиков, вы можете представить это как -
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								\`\` \`Каст #включают использование пространства имен std; int main () { int a; cout << "Значение мусора в a:" << a << endl; // объявляем переменную с именем 'a' типа integer а = 5; // инициализация переменной. cout << "Новое значение в" << a << endl;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								} \`\` \`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### Выход:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								Garbage value in a : 0 
							 | 
						|||
| 
								 | 
							
								 New value in a :  5 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Как вы можете видеть, уже есть значение, хранящееся в 'a', прежде чем мы дадим ему значение (здесь оно равно 0). Это должно оставаться в памяти каждого программиста, чтобы при использовании переменных они не создавали логическую ошибку и не печатали значения мусора.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[Попробуйте код самостоятельно! :)](https://repl.it/Mg7j)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### Ключевые слова:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								_Ключевые слова - это зарезервированные слова, которые передают особый смысл компилятору. Они **НЕ МОГУТ** использоваться для именования в c ++._ Примеры ключевых слов: inline, operator, private int, double, void, char, template, using, virtual, break, case, switch, friend и т. д.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**Каждое из этих ключевых слов используется для специальной функции в C ++.**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								_Токены часть 1 закончена. Увидимся в палатках во [второй](https://guide.freecodecamp.org/cplusplus/tokens-part-II) части токенов :)_
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**Удачи всем вам**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**Счастливое кодирование! :)**
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								**Не стесняйтесь задавать любые вопросы на странице GitHub [FreeCodeCamp](https://forum.freecodecamp.org/) или [форуме FreeCodeCamp.](https://forum.freecodecamp.org/)**
							 |