Что такое объявление переменной
Урок №28. Инициализация, присваивание и объявление переменных
Обновл. 11 Сен 2021 |
Этот урок является более детальным продолжением урока №10.
Адреса и переменные
Как вы уже знаете, переменные — это имена кусочков памяти, которые могут хранить информацию. Помним, что компьютеры имеют оперативную память, которая доступна программам для использования. Когда мы определяем переменную, часть этой памяти отводится ей.
Поскольку все данные компьютера — это лишь последовательность битов, то мы используем тип данных (или просто «тип»), чтобы сообщить компилятору, как интерпретировать содержимое памяти. Вы уже видели пример типа данных: int (целочисленный тип данных). Когда мы объявляем целочисленную переменную, то мы сообщаем компилятору, что «кусочек памяти, который находится по такому-то адресу, следует интерпретировать как целое число».
Когда вы указываете тип данных для переменной, то компилятор и процессор заботятся о деталях преобразования вашего значения в соответствующую последовательность бит определенного типа данных. Когда вы просите ваше значение обратно, то оно «восстанавливается» из этой же последовательности бит.
Кроме int, есть много других типов данных в языке C++, большинство из которых мы детально рассмотрим на соответствующих уроках.
Фундаментальные типы данных в С++
В языке C++ есть встроенная поддержка определенных типов данных. Их называют основными типами данных (или «фундаментальные/базовые/встроенные типы данных»).
Вот список основных типов данных в языке C++:
Категория | Тип | Значение | Пример |
Логический тип данных | bool | true или false | true |
Символьный тип данных | char, wchar_t, char16_t, char32_t | Один из ASCII-символов | ‘c’ |
Тип данных с плавающей запятой | float, double, long double | Десятичная дробь | 3.14159 |
Целочисленный тип данных | short, int, long, long long | Целое число | 64 |
Пустота | void | Пустота |
Объявление переменных
Вы уже знаете, как объявить целочисленную переменную:
Переменные и типы данных в C++ — урок 2
Из школьного курса математики мы все знаем, что такое переменные. В программировании принципы довольно схожи. Переменная — это «ячейка» оперативной памяти компьютера, в которой может храниться какая-либо информация.
В программировании переменная, как и в математике, может иметь название, состоящее из одной латинской буквы, но также может состоять из нескольких символов, целого слова или нескольких слов.
Типы данных
В языке С++ все переменные имеют определенный тип данных. Например, переменная, имеющая целочисленный тип не может содержать ничего кроме целых чисел, а переменная с плавающей точкой — только дробные числа.
Тип данных присваивается переменной при ее объявлении или инициализации. Ниже приведены основные типы данных языка C++, которые нам понадобятся.
Основные типы данных в C++
Объявление переменной
Объявление переменной в C++ происходит таким образом: сначала указывается тип данных для этой переменной а затем название этой переменной.
Пример объявления переменных
Присваивание используется для сохранения определенного значение в переменной. Например, запись вида a = 10 задает переменной a значение числа 10.
Простой калькулятор на C++
Сейчас мы напишем простую программу-калькулятор, которая будет принимать от пользователя два целых числа, а затем определять их сумму:
Разбор кода
Домашнее задание
Попробуйте провести несколько экспериментов с программой — сделайте аналогичный пример с умножением или вычитанием переменных. Не бойтесь издеваться над программным кодом, потому что ошибки — неотъемлемая часть обучения любому делу. И не забываем про точки с запятой.
Переменные C# | Типы и виды переменных
Любой, даже начинающий программист сталкивается с переменными ежедневно. Но за кажущейся простотой скрыт мощный механизм работы с памятью. Давайте разбираться, что такое переменные подробнее.
Что такое переменная?
Определение переменной звучит примерно следующим образом:
Переменная – это именованная область памяти.
Но что это означает для нас. Давайте разбираться на примере.
Я думаю, что каждый из вас уже знаком с понятием переменной в алгебре. Это тот самый X, который приходиться искать в уравнении. В программировании переменная имеет схожие функции. Это своеобразный псевдоним, что-то неопределенное, неизвестное, под которым может скрываться кто угодно
Представь себе коробочку. На этой коробочке написано «Подарок» и это делает эту коробочку уникальной. Ты всегда сможешь найти именно эту коробку по этому имени (при условии, что не может существовать ни одной другой коробочки с таким именем).
А вот положить в эту коробочку ты можешь все что угодно. Это может быть и новенький IPhone, и миленький котеночек, и что-нибудь куда менее приятное (как в фильме «Семь»). Кстати, если не смотрел этот фильм, очень рекомендую, но только если у тебя крепкая психика и тебе больше 18 лет.
И в дальнейшем ты можешь как угодно работать с этой коробочкой. В любой момент ты можешь положить туда что-нибудь (предварительно выкинув оттуда то, что там лежало раньше), посмотреть, что там лежит, или вообще взять и выкинуть эту коробочку со всем содержимым.
При этом важно понимать, что концепция переменных это очень сложный механизм работы с памятью, который просто скрыт от программиста современными операционными системами и высокоуровневыми языками программирования.
Типизация переменных
Именно так работали бы переменные, если бы в не существовало типизации. Типизация – это возможность разделить коробочки по возможному содержимому. То есть, когда мы создаем коробочку, мы кроме имени указываем, что в ней может располагаться. И тогда, в коробочку для IPhone котеночка ты уже не засунешь.
Это позволяет дополнительно защититься от ошибок, потому что ты будешь заранее знать, что будет в коробочке, и будешь готов к тому, как тебе нужно будет себя вести с содержимым.
Языки программирования условно можно разделить на два больших типа:
Сильнотипизированные – те, где вся ответственность за указание типа переменных ложится на программиста
Слаботипизированные – те, где компьютер сам решает, какой тип используется в конкретном случае.
Язык C# относится к первым. Возможно, это лишает его такой гибкости как тот же самый JavaScript (который относится ко вторым), но при этом дает большую защищенность от ошибок.
Виды переменных в языке C#
Перед тем, как мы приступим к знакомству с основными типами данных в языке C# необходимо узнать изучить еще один вопрос – виды переменных. На самом деле их всего два:
Ссылочные – хранятся в куче (сложные типы и классы)
Значимые – хранятся в стеке (базовые примитивные типы)
Мы не будем подробно останавливаться на этой теме, но общая идея следующая:
Условно в компьютере существует два вида памяти для работы приложения:
Стек (Stack) – быстрая память, но сильно ограниченная по размеру
Куча (Heap) – память, ограниченная только размером оперативки, но при этом значительно более медленная, чем стек.
Таким образом несложно понять, что стек хранит небольшие по размеру данные, к которым обеспечивается доступ с наибольшей скоростью, а в куче хранятся сложные сущности, содержащие большой объем данных.
Типы переменных в языке C#
Начнем со знакомства с наиболее часто используемыми типами данных (большинство их них значимые):
Это самые распространенные и часто используемые типы данных, но это далеко не все типы. В таблице ниже приведены типы данных, которые используют в тех случаях, когда необходимо заботиться о быстродействии и потреблении системных ресурсов.
Имя | Класс | Описание | Пример | |||||||||||||||||||||||||||
sbyte | SByte | Маленькое целое число со знаком Надеюсь, ты заметил, что для типов float и decimal при дробном числе добавляется специальная литера (F и M соответственно). Это связано с тем, что по умолчанию в C# дробные числа хранятся в типе double, а это необходимо для того, чтобы компилятор правильно воспринимал эти числа. Для целых значений это не обязательно. Объявление переменной в языке C#Для того, чтобы объявить переменные следует указать ее тип и имя, и желательно сразу же инициализировать значением (но не обязательно). Соответственно, объявление целочисленной переменной будет выглядеть следующим образом: Где int – тип, i – имя переменной, = — символ присваивания значения, 42 – значение, ; — символ окончания команды. Данная форма является наиболее правильной, но в некоторых случаях возможно разделение данной операции на две команды Аналогичным образом происходит объявление переменных и других типов. Переменные типа var в языке C#Тип var по своей сути является просто синтаксическим сахаром. Он позволяет не дублировать указание типа в объявлении переменных, получая данные о типе из контекста. Проще всего это понять на примере. В данном случае компилятор и так может однозначно понять, что тип переменной должен быть целым числом, так как справа от = стоит целое число. Чтобы сэкономить силы программиста можно использовать тип var, который будет автоматически определять тип переменной из контекста, при этом она все также будет оставаться сильнотипизированой. То есть, если ты сначала объявишь переменную как целое число, а потом попробуешь добавить к ней строку, то получишь синтаксическую ошибку. Переменные типа dynamic в C#В данном случае, компилятор на этапе написания не будет вообще контролировать типы, но естественно на этапе выполнения приложения вы получите сообщение об ошибке. Я еще раз настоятельно рекомендую трижды подумать, перед тем как использовать этот тип, потом посоветоваться с опытными коллегами, а потом еще раз подумать, и только если не остается никакого другого варианта использовать этот тип. Задание по теме переменныеНеобходимо поэкспериментировать и объявить переменные всех типов данных. Вывести их на консоль. Изучить методы и свойства доступные для каждой переменной в помощнике intellisense. Подписывайтесь на мой YouTube-канал, чтобы не пропускать живые уроки по программированию на языке C#, а также вступайте в мою группу Вконтакте и Telegram-канал. Там много обучающих материалов по всем языкам, а также отличный IT-юмор. А также рекомендую прочитать статью Монитор для программиста: как выбрать? После прочтения последних двух статей вы знаете, что такое JavaScript, что он может сделать для вас, как использовать его вместе с другими веб-технологиями и какими он обладает функциями высокого уровня. В этой статье мы перейдём к реальным основам, рассмотрим, как работать с большинством базовых блоков JavaScript — Переменными.
Инструменты, которые вам нужныВ этой статье вам будет предложено ввести строки кода, чтобы проверить ваше понимание материала. Если вы используете браузер для настольных компьютеров, лучшим примером для ввода кода примера является консоль JavaScript вашего браузера (см. What are browser developer tools для получения дополнительной информации о том, как получить доступ к этому инструменту). Также мы предоставили простую консоль JavaScript, встроенную ниже в странице, для ввода кода, если вы не используете браузер с консолью JavaScript или консоль на странице окажется для вас более комфортной. Что такое переменные?Переменные — это контейнер для таких значений, как числа, используемые в сложении, или строка, которую мы могли бы использовать как часть предложения. Но одна из особенностей переменных — их значение может меняться. Давайте взглянем на простой пример: В примере, по нажатию кнопки выполнится несколько строк кода. Первая строка в функции покажет пользователю окно, где попросит ввести его имя и сохранит значение в переменной. Вторая строка отобразит приветствие с включённым введённым именем, взятым из значения переменной. Чтобы лучше понять действие переменной здесь, давайте подумаем о том, как мы будем писать этот пример без использования переменной. Это будет выглядеть примерно так: Вам сейчас не обязательно понимать синтаксис, который мы используем (пока!), но вы должны понять идею: если бы у нас не было доступных переменных, нам пришлось бы реализовать гигантский блок кода, который проверял, какое имя было введено, а затем отображал соответствующее сообщение для этого имени. Очевидно, что это неэффективно (код намного больше, даже для четырёх вариантов), и он просто не сработает, так как вы не можете хранить все возможные варианты. Переменные имеют смысл, и, когда вы узнаете больше о JavaScript, они начнут становиться второй натурой. Ещё одна особенность переменных заключается в том, что они могут содержать практически все, а не только строки и числа. Переменные могут также содержать сложные данные и даже целые функции. Об этом вы узнаете больше при дальнейшем изучении курса.. Заметьте: мы говорим, что переменные содержат значения. Это важное различие. Переменные не являются самими значениями; они представляют собой контейнеры для значений. Представьте, что они похожи на маленькие картонные коробки, в которых вы можете хранить вещи. Объявление переменнойЧтобы использовать переменную, вы сначала должны её создать, или, если быть точнее, объявить переменную. Чтобы сделать это, мы вводим ключевое слово var, за которым следует имя, которое вы хотите дать своей переменной: Здесь мы создаём две переменные myName и myAge. Попробуйте ввести эти строки сейчас в консоли вашего веб-браузера или в консоли ниже (можно открыть эту консоль в отдельной вкладке или в новом окне). После этого попробуйте создать переменную (или две) с вашими именами. Теперь проверим, существуют ли эти значения в среде выполнения. Для этого введём только имя переменной. Присвоение значения переменнойКак только переменная объявлена, ей можно присвоить значение. Для этого пишется имя переменной, затем следует знак равенства ( = ), а за ним значение, которое вы хотите присвоить. Например: Попробуйте вернуться в консоль и ввести эти строки. Вы должны увидеть значение, которое вы назначили переменной, возвращаемой в консоли. Чтобы посмотреть значения переменных, нужно набрать их имя в консоли: Вы можете объявить переменную и задать ей значение одновременно: Скорее всего, так вы будете писать большую часть времени, так как запись и выполнения кода с одно строки происходит быстрее, чем выполнение двух действий на двух отдельных строках. Обновление переменнойКогда переменной присваивается значение, вы можете изменить (обновить) это значение, просто указав другое значение. Попробуйте ввести следующие строки в консоль: Правила именования переменныхВы можете назвать переменную как угодно, но есть ограничения. Как правило, вы должны придерживаться только латинских символов (0-9, a-z, A-Z) и символа подчёркивания. Примечание: По ссылке можно найти довольно полный список зарезервированных ключевых слов: Lexical grammar — keywords. Примеры хороших имён переменных: Примеры плохих имён переменных: Примеры имён переменных, которые вызовут ошибки: Попытайтесь создать ещё несколько переменных прямо сейчас, используя знания, изложенные выше. Типы переменныхЕсть несколько различных типов данных, которые мы можем хранить в переменных. В этом разделе мы кратко опишем их, а затем в будущих статьях вы узнаете о них более подробно. Числа (Numbers)Вы можете хранить числа в переменных (целые числа, такие как 30, или десятичные числа, такие как 2.456, также называемые числами с плавающей точкой или с плавающей запятой). Вам не нужно объявлять типы переменных в JavaScript, в отличие от некоторых других языков программирования Если давать переменной значение числа,кавычки не используются: Строки (‘Strings’)Логические (Booleans)В действительности вы чаще будете использовать этот тип переменных так: Подведение итоговК настоящему времени вы должны знать достаточно о переменных JavaScript и о том, как их создавать. В следующей статье мы остановимся на числах более подробно, рассмотрев, как сделать базовую математику в JavaScript. Что такое переменная и как правильно её объявить?Для чего нужна переменная? Чтобы хранить значение и применить его позже в любой момент. Например, в ячейке А1 записана сумма, а нажатием на кнопку запускается обновление отчета. После обновления отчета сумма в А1 изменится. Необходимо сверить сумму до обновления с суммой после и в зависимости от этого сделать какое-либо действие. Переменная как раз позволит запомнить значение ячейки до того, как она обновится и использовать именно это значение после обновления. Требования к переменным: В качестве имен переменных можно использовать символы букв и числа, но первой в имени переменной всегда должна быть буква. Не допускается использование точки, запятой, пробела и иных знаков препинания, кроме нижнего подчеркивания. Длина имени не должна превышать 254 символов. Так же нельзя использовать в качестве имен для переменных зарезервированные константы редактора VBA(например Sub, Msgbox, ubound, Date и т.п.). Так же для переменных неважен регистр букв. Теперь рассмотрим основные декларированные в VBA типы данных, которые можно хранить в переменных: Dim rRange as Range ‘назначили переменной тип ячейка/диапазон Set rRange = Range(«A1») ‘присвоили ссылку на ячейку A1 текущего листа Про объявление переменных подробно написано чуть ниже. [оператор области действия] Имя_переменной As [тип данных] Очень частая ошибка при объявлении переменных, совершаемая начинающими изучать VBA: Dim MyVar1, MyVar2, MyVar3 As Integer Dim MyVar1 As Integer, MyVar2 As Integer, MyVar3 As Integer Dim MyVar1%, MyVar2%, MyVar3% Option Explicit Sub main() Public MyVariable As String MyVariable = «Глобальная переменная» ‘показываем текущее значение переменной MsgBox MyVariable ‘пробуем изменить значение переменной Call sub_main ‘показываем измененное значение переменной MsgBox MyVariable End Sub ‘доп.процедура изменения значения переменной Sub ChangeMyVariable() MyVariable = «Изменили её значение» End Sub Как правильно назвать переменную:
Лично я немного для себя её переделал, т.к. некоторые обозначения мне кажутся скудными. Например Double я обозначаю как dbl, а Single как sgl. Это мне кажется более наглядным. В чем еще плюс явного указания префикса данных. В VBA есть такие операторы как Def, при помощи которых можно указать тип данных по умолчанию для переменных, первая буква имени которых попадает в заданный в операторе диапазон. Например: DefBool B Sub test() Dim bCheck End Sub DefBool B-C Sub test() Dim bCheck, cCheck End Sub Но я считаю, что одной буквы для одного типа вполне достаточно. Можно задать сразу несколько операторов Def. DefBool B DefStr S Sub test() Dim bCheck, sCheck End Sub Небольшой пример использования переменных в кодах: Просмотреть пошагово выполнение данного кода поможет статья: Отлов ошибок и отладка кода VBA ‘присвоили переменной rRange ссылку на текущую выделенную ячейку Set rRange = Selection Это так же распространяется на все другие объекты. Т.е. те переменные, значения которым назначаются через оператор Set. Const sMyConst As String = «Имя моей программы» Во всем остальном объявление и применение констант идентично объявлению переменных. Коротко приведу пару примеров. Sub TestConst() Const sMyConst As String = «Имя моей программы» MsgBox sMyConst ‘показываем сообщение с именем программы End Sub то она не может быть использована в другой процедуре: Sub TestConst() Const sMyConst As String = «Имя моей программы» MsgBox sMyConst ‘показываем сообщение с именем программы End Sub Sub TestConst2() MsgBox sMyConst ‘вызовет ошибку Variable not defined End Sub Чтобы использовать одну константу во всех процедурах модуля(того, в котором она объявлена), необходимо объявить её в области объявлений: Const sMyConst As String = «Имя моей программы» Sub TestConst() MsgBox sMyConst ‘показываем сообщение с именем программы End Sub Sub TestConst2() MsgBox sMyConst ‘уже не вызовет ошибку Variable not defined End Sub Чтобы использовать одну константу во всех процедурах проекта(книги), необходимо объявить её как Public: Public Const sMyConst As String = «Имя моей программы» Sub TestConst() MsgBox sMyConst ‘показываем сообщение с именем программы End Sub Sub TestConst2() MsgBox sMyConst ‘не вызовет ошибку Variable not defined, даже если процедура в другом модуле End Sub Статья помогла? Поделись ссылкой с друзьями!
|