ПОНЯТНО О Visual Basic NET

Что делает оператор присваивания с памятью


Я только что рассказывал о работе оператора присваивания, используя такие выражения, как «компьютер знает», «компьютер помнит» », «компьютер присваивает». Но нам необходимо более строгое понимание работы этого оператора, понимание ближе к «железу», к оперативной памяти.

Рассмотрим пример программы:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

      Dim a, b, y As Integer

      a = 10

      b = 6

      y = a + b + 1

      Debug.WriteLine(y + 200)

End Sub

В программе встречаются три переменные, все они объявлены. Компьютер отведет для них в памяти три четырехбайтовые ячейки. Вот как будет работать оператор присваивания:

Выполняя оператор присваивания (например, y=a+b+1), компьютер сначала смотрит на его правую часть (a+b+1). Если в ней встречаются переменные (в нашем случае это a и b ), то компьютер перед вычислением ищет их значения в отведенных ячейках памяти (и находит там 10 и 6, так как их туда перед этим записали операторы а=10 и b=6), подставляет эти значения в правую часть и вычисляет ее. Затем вычисленное значение (17) компьютер записывает в ячейку памяти, отведенную под переменную, поставленную в левой части (y).

Таким образом, когда мы говорим "Компьютер запомнил, что а равно 2", мы подразумеваем "Компьютер записал в ячейку памяти, предназначенную для а, число 2".

А теперь рассмотрим, как будут заполняться информацией ячейки a, b, y   в процессе выполнения нашей программы. В самом начале выполнения программы в них находятся нули. Первым выполняется оператор а=10. Согласно только что приведенному определению оператора присваивания в ячейку a будет записано число 10. Затем выполняется оператор  b=6 и в ячейке b появляется шестерка. Затем выполняется оператор  y=a+b+1. Компьютер смотрит, что находится в ячейках a и b, видит там 10 и 6, подставляет их в выражение a+b+1, получает 17 и записывает в ячейку y. Наконец выполняется оператор  Debug.WriteLine(y+200). Компьютер заглядывает в ячейку y, видит там 17, вычисляет  17+200 и выводит 217 в окно Output.



Содержание раздела