Урок 3. C# Переменные.

Что такое переменные? Ответ кроется в самом названии: «переменная» от слова меняться, переменчивая. То есть это такая именованная область в памяти, которая имеет тип, имя и значение и может меняться по ходу выполнения программы. Пишется она следующим образом:


Тип имя_переменной = значение.


Тип – это то, в каком виде хранится переменная. Если она должна храниться в виде строки, то пишем вместо тип – string, если в целочисленном виде, то int, если с плавающей точкой (или десятичное дробное число), то используем double/decimal. Пока хватит, подробная информация о типах здесь. https://metanit.com/sharp/tutorial/2.1.php

Урок 3. C# Переменные. Урок, Программирование, Csharp, Длиннопост

В чем же отличие double от decimal? Помимо диапазона и количества цифр после запятой, decimal более лучше работает с числами, где важна точность десятичной части (банки, деньги), а в double используем, если точность после десятичной части не столь существенна.


Имя_переменной – так как мы хотим назвать переменную, желательно понятное название, а не a,b,c,d. В имени не должно быть знаков пунктуаций, пробелов, не должно быть ключевым словом C# (зарезервированные слова), и не начинаться с цифры.


= Этот символ означает не равно, а присваивание. То есть мы этой переменной присваиваем какое-то значение.


Значение – ну тут просто. Если строка, то пишем строку, если число, то число. Но строки мы обязаны заключать в кавычки, иначе компилятор не поймет, это команда или что это такое.


string name = “Привет”; //строка

int num = 10; //целое число

double percent = 0.2; //число с плавающей точкой


И можем вывести их на экран


Console.WriteLine(name);

Console.WriteLine(num);

Console.WriteLine(percent);


Мы можем не присваивать значение переменной сейчас, а сделать это потом. Но если мы объявим переменную, но не присвоим ей значение и попытаемся её использовать в операциях, то компилятор выдаст нам ошибку, что переменной не присвоено значение.

Урок 3. C# Переменные. Урок, Программирование, Csharp, Длиннопост

А давайте теперь поподробнее посмотрим, а как же хранятся переменные в памяти. Отброшу все лишнее, и упрощенно схематично покажу.

Урок 3. C# Переменные. Урок, Программирование, Csharp, Длиннопост

Память представляет собой стэк. Что такое стэк? Представьте себе пустую полку (это память), в которую мы будем класть тарелки друг на друга (заполняем память). Объявили переменную x – поставили тарелку x на полку. Поменяли ему значение. Та же тарелка с другим значением. Объявили переменную double d – достаем новую тарелку d и кладем её поверх тарелки x. А тарелку p ставим поверх тарелки d. Теперь мы вышли из метода или программа завершилась? Нужно очистить полку. Мы не можем взять нижнюю тарелку, поэтому вначале убираем из стека переменную p, потом d и наконец x. LIFO – последний пришел, первый ушел.