Типы данных. Описание переменных. Константы именованные и неименованные
Данные хранятся в памяти компьютера, но для указания на конкретную информацию очень неудобно все время записывать физические адреса ячеек. Эта проблема в языках программирования высокого уровня решена введением понятия переменной. Переменная - именованный участок памяти для хранения данных определенного типа. Значение переменной (информация в соответствующих ячейках памяти) в ходе выполнения программы может быть изменено. Константами называются величины, значение которых в ходе выполнения программы изменено быть не может. Конкретные переменные и константы представляют собой объекты уникальные и отличаются друг от друга именем.
В качестве данных в программах могут выступать числа, символы, целые строки символов. С этими различными видами информации выполняются совершенно разные действия. Например, с числовыми величинами производятся арифметические операции, чего невозможно сделать с символьными. Кроме того, разные виды данных требуют различного объема памяти для хранения. В соответствии с этими соображениями введено понятие "Тип" . Тип переменной указывает на то, какие данные могут быть сохранены в этом участке памяти, и в каких действиях эта переменная может участвовать. Существуют зарезервированные (базовые) типы но есть также возможность создавать свои собственные, определяемые программистом типы переменных.
Базовые типы
К базовым типам относятся:
- тип целых чисел
- тип действительных (вещественных) чисел (то есть - с дробной частью). Примеры обозначения действительного числа:
при вводе констант в программе требуют использования специальных суффиксов в конце.
double от ±5,0 × 10−324 до ±1,7 × 10308 double x = 3.7D; double m = 8.2;float от ±1,5 × 10−45 до ±3,4 × 1038 float x = 3.5F;- символьный тип - Char
Ключевое слово char используется для объявления символа Юникода в диапазоне, указанном в следующей таблице. Символы Юникода — это 10-разрядные символы, которые используются для представления большинства известных письменных языков мира. содержит внутри себя всего один символ например 'w' или '#'
Константы типа char могут быть записаны в виде символьных литералов, шестнадцатеричной escape-последовательности или представления Юникода. Кроме того, можно привести коды целых символов. Все следующие операторы объявляют переменную char и инициализируют ее символом X:
- строковый тип - string по умолчанию до 2Гбайт например " iit "
Тип данных string — это последовательность, содержащая ни одного или любое число знаков Юникода. В платформе.NET Framework string является псевдонимом для String.
string a = "hello";string b = "h";
- логический тип - bool (Может принимать два значения Истинно-true Ложно-false)
Физически типы данных отличаются друг от друга количеством ячеек памяти (байтов), отводимых для хранения соответствующей переменной. Логическое же отличие проявляется в интерпретации хранящейся информации. Например, переменные типа Char и типа Byte занимают в памяти по одному байту. Однако в первом случае содержимое ячейки памяти интерпретируется как целое беззнаковое число, а во втором - как код (ASCII) символа.
Константы
Константа - это объект, значение которого известно еще до начала работы программы. Константы необходимы для оформления наглядных программ, незаменимы при использовании в тексте программы многократно повторяемых значений, удобны в случае необходимости изменения этих значений сразу во всей программе.
Константа хранит значение, присваиваемое по завершении компиляции программы, и никогда после этого не изменяется. Константы объявляются c помощью ключевого слова const; их использование способствует повышению удобочитаемости кода. В языке существует два вида констант:
- неименованные константы (цифры и числа, символы и строки, множества);
- именованные константы;
Неименованные константы
Неименованные константы не имеют имен, и потому их не нужно описывать. Тип неименованной константы определяется автоматически, по умолчанию:
- любая последовательность цифр (возможно, предваряемая знаком "-" или "+" или разбиваемая одной точкой) воспринимается компилятором как неименованная константа - число (целое или вещественное);
- любая последовательность символов, заключенная в апострофы, воспринимается как неименованная константа - строка;
- любая последовательность целых чисел, либо символов через запятую, обрамленная квадратными скобками, воспринимается как неименованная константа - множество.
Кроме того, существуют две специальные константы true и false, относящиеся к логическому типу данных. Примерами использования неименованных констант могут послужить следующие операторы:
a = -10;b = 12.075 + х;c = 'z';d = "abc" + string44;
Именованные константы
Именованные константы, как следует из их названия, должны иметь имя. Стало быть, эти имена необходимо сообщить компилятору, то есть описать в специальном разделе const.
Если не указывать тип константы, то по ее внешнему виду компилятор сам определит, к какому (базовому) типу ее отнести. Любую уже описанную константу можно использовать при объявлении других констант, переменных и типов данных. Вот несколько примеров описания нетипизированных именованных констант:
const int speedLimit = 55;const double pi = 3.14159265358979323846264338327950;Переменные
В C# переменные объявляются с определенным типом данных и надписью. Если ранее вам приходилось работать со слабо типизированными языками, например JScript, вы привыкли использовать один тип "var" для всех переменных, то в C# необходимо указать тип переменной: int, float, byte, short или другой из более чем 20 различных типов данных. Тип указывает, помимо всего прочего, точный объем памяти, который следует выделить для хранения значения при выполнении приложения. Пример:
int i;int answer = 42;string greeting = "Hello, World!";double bigNumber = 1e100;Console.WriteLine("{0} {1} {2}", answer, greeting, bigNumber);Идентификаторы
Имена операторов, переменных, констант, типов величин, имя самой программы назначаются программистом и называются идентификаторами. Существуют правила, которым должны отвечать все идентификаторы:
- идентификатор должен быть уникальным, то есть одним и тем же именем разные объекты не могут быть названы;
- идентификатор имеет ограничение по длине (зависит от конкретной реализации языка на компьютере);
- идентификатор может состоять только из символов латинского алфавита, цифр и знака подчеркивания ("_"), регистр букв имеет значение;
- идентификатор не может начинаться с цифры.
Имена - это идентификаторы. Любая случайным образом составленная последовательность букв, цифр и знаков подчёркивания с точки зрения грамматики языка идеально подходит на роль имени любого объекта, если только она начинающаяся с буквы. Фрагмент программы, содержащий подобную переменную, будет синтаксически безупречен.
И всё же имеет смысл воспользоваться дополнительной возможностью облегчить восприятие и понимание последовательностей операторов. Для этого достаточно закодировать с помощью имён содержательную информацию.
Желательно создавать составные осмысленные имена. При создании подобных имён в одно слово можно "втиснуть" предложение, которое в доступной форме представит информацию о типе объекта, его назначении и особенностях использования.
Вы можете давать программным объектам любые имена, но необходимо, чтобы они отличались от зарезервированных слов, используемых языком, потому что компилятор все равно не примет переменные с "чужими" именами.
Приведем список наиболее часто встречающихся зарезервированных слов:
Abstract event new struct as explicit null switch base extern object this bool false operator throw break finally out true byte fixed override try case float params typeof catch for private uint char foreach protected ulong checked goto public unchecked class if readonly unsafe const implicit ref ushort continue in return using decimal int sbyte virtual default interface sealed volatile delegate internal short void do is sizeof while double lock stackalloc else long static enum namespace string