Язык программирования предназначен для предоставления инструкций компьютеру для выполнения задач. Программа может манипулировать данными, содержащими цифры, символы и строки, и выдавать информацию пользователю. Последовательность инструкций, написанных на определенном языке программирования, является программой. В таких языках программирования, как C #, есть токены. Это ключевые слова, идентификаторы, литералы и операторы. Зарезервированные области памяти для хранения данных называются переменными. Переменная может хранить значение определенного типа. Типы данных можно разделить на тип значения и ссылочный тип. Различие между типом значения и ссылочным типом зависит от двух особенностей. Это те, где переменные хранятся в памяти и как они ведут себя с оператором присваивания. В этой статье обсуждается разница между типом значения и ссылочным типом. ключевое отличие между типом значения и ссылочным типом является то, что тип значения содержит значение данных в своем собственном пространстве памяти, в то время как ссылочный тип содержит указатель на другую область памяти, в которой хранятся данные.
1. Обзор и основные отличия
2. Что такое тип значения
3. Что такое тип ссылки
4. Сходства между типом значения и ссылочным типом
5. Сравнение бок о бок - тип значения и тип ссылки в табличной форме
6. Резюме
Типы значений можно разделить на две категории. Это предопределенные типы и определяемые пользователем типы. Предопределенные типы предоставляются языком программирования. Они могут быть числовыми, символьными или десятичными. Числовые типы могут быть целочисленными типами, типами с плавающей точкой и десятичными типами. Интегральные типы могут быть далее классифицированы на подписанные и неподписанные. Целые числа со знаком могут хранить положительное или отрицательное число. Sbyte, short, int и long являются типами данных со знаком.
Sybte - один байт, short - два байта, int - четыре байта, long - восемь байтов. Тип без знака хранит положительные значения. Байт, ushort, uint и ulong являются примерами для неподписанных типов. Типы с плавающей точкой могут хранить числовое значение с десятичной точкой. Число с плавающей запятой предназначено для хранения 32-битного значения с плавающей запятой одинарной точности, а значение типа double используется для хранения 64-битной плавающей запятой одинарной точности. Десятичный тип предназначен для значений высокой точности. Тип данных char используется для хранения одного символа в памяти. Иногда требуется хранить значение true или false. Логическое значение используется для этого. Это некоторые примеры типов значений, предоставляемых языком программирования..
Пользователь также может создавать типы значений. Два таких пользовательских типа значений - это структура и перечисления. Структура содержит данные разных типов. Это похоже на класс. Ключевое слово'struct 'используется для объявления структурной переменной. Пример структуры следующий.
struct Employee
public int empNo;
публичное имя строки;
Перечисления используются для повышения читабельности кода. Используется для присвоения имен номерам. Ключевое слово enum используется для объявления перечисления. Пример перечисления следующий. например - enum Color черный, белый, фиолетовый. Ключевое слово enum автоматически перечисляет список слов, присваивая значения, начинающиеся с 0. Согласно приведенному выше примеру, черный назначается с 0, белый - с 1, а фиолетовый - с 2. Если он записывается как enum Color black, белый = 3, фиолетовый, затем черный назначается с 0, а фиолетовый назначается с 4. Это некоторые примеры типов значений. Они хранятся в стеке. При присвоении значения другой переменной это значение копируется в новое местоположение. Таким образом, две копии одного и того же значения существуют в памяти.
Типы ссылок могут быть разделены на две категории как пользовательские и предопределенные типы. Некоторыми примерами пользовательских типов являются классы, интерфейсы и массивы. Класс используется для создания объектов. Класс состоит из членов данных и методов. Элементы данных описывают атрибуты, а методы описывают поведение. Интерфейс содержит только декларацию членов. Члены должны быть определены производным классом. Массив может хранить несколько элементов одного типа данных.
Предопределенными типами являются тип объекта и тип строки. Тип объекта является базовым типом для всех других пользовательских типов. Ссылки на объекты используются для привязки к объекту любого конкретного типа. Строковые литералы хранятся в строковых объектах как значения. Такие операции, как копирование, сравнение и объединение, могут быть выполнены с их использованием. Это некоторые примеры ссылочного типа. Типы ссылок хранятся в куче. При назначении одной ссылочной переменной другой ссылочной переменной копируется только ссылка. Фактическое значение остается прежним.
Тип значения и тип ссылки | |
Тип значения содержит значение данных в своем собственном пространстве памяти. | Ссылочный тип содержит указатель на другую область памяти, которая содержит данные. |
присваивание | |
В типе значения значение копируется в новое местоположение, поэтому в памяти находятся две идентичные копии одного и того же значения.. | В ссылочном типе ссылка копируется, а фактическое значение остается тем же. |
Хранимое местоположение | |
Тип значения хранится в стеке. | Тип ссылки хранится в куче. |
Примеры | |
Int, float, double, struct, enum - некоторые примеры типов значений. | Класс, массив, интерфейс - некоторые примеры ссылочных типов. |
Данные хранятся в зарезервированных местах памяти, известных как переменные. Каждая переменная хранит определенный тип данных. Типы данных можно разделить на две категории. Это тип значения и ссылочный тип. Разница между типом значения и ссылочным типом заключается в том, что тип значения содержит значение данных в своем собственном пространстве памяти, в то время как ссылочный тип содержит указатель на другую область памяти, в которой хранятся данные..
1.Тип значения и тип ссылки, TutorialsTeacher.com. Доступна здесь
2.Балагурусамы, Е. Программирование на C #, Премьер. Четвертое издание, McGraw Hill Education (India) Private Limited, 2016.