Login
Какой смысл арифметических операций с нулем?
2189 просмотров
Перейти к просмотру всей ветки
in Antwort Программист 20.08.23 00:01
Сегодня хотел начать с отцом говорить на эту тему, но отец сказал чтобы я его оставил в покое и не забивал его голову всякой мусоркой.
Короче в Википедии написано следующее:
В языке Си, структура (struct) — композитный тип данных, инкапсулирующий без сокрытия набор значений различных типов. Порядок размещения значений в памяти задаётся при определении типа и сохраняется на протяжении времени жизни объектов, что даёт возможность косвенного доступа (например, через указатели).Тип «структура» в Си допускает рекурсию, то есть наличие в своём составе указателей, ссылающихся на объекты этой самой структуры. Таким образом, структуры в Си объединяют в себе функциональность не только кортежей и записей, но и алгебраических типов. Для лёгкого представления говорят, что структура — это класс, у которого все поля по умолчанию public[1].В C++ понятие структуры было расширено до класса, то есть была добавлена возможность включения в структуру функций-методов. Главное отличие состоит в том, что в соответствии с «правилом трёх» структуры всегда имеют конструктор, даже если явное его определение в исходном коде отсутствует. Таким образом, говорить о «структурах в C++» некорректно. То же относится к C#.
На metanit написано следующее:
Наряду с классами структуры представляют еще один способ создания собственных типов данных в C#. Более того многие примитивные типы, например, int, double и т.д., по сути являются структурами.
На professeweb написано следующее (тут уже более понятнее):
Как вам должно быть уже известно, классы относятся к ссылочным типам данных. Это означает, что объекты конкретного класса доступны по ссылке, в отличие от значений простых типов, доступных непосредственно. Но иногда прямой доступ к объектам как к значениям простых типов оказывается полезно иметь, например, ради повышения эффективности программы. Ведь каждый доступ к объектам (даже самым мелким) по ссылке связан с дополнительными издержками на расход вычислительных ресурсов и оперативной памяти.Для разрешения подобных затруднений в C# предусмотрена структура, которая подобна классу, но относится к типу значения, а не к ссылочному типу данных. Т.е. структуры отличаются от классов тем, как они сохраняются в памяти и как к ним осуществляется доступ (классы — это ссылочные типы, размещаемые в куче, структуры — типы значений, размещаемые в стеке), а также некоторыми свойствами (например, структуры не поддерживают наследование). Из соображений производительности вы будете использовать структуры для небольших типов данных. Однако в отношении синтаксиса структуры очень похожи на классы.Главное отличие состоит в том, что при их объявлении используется ключевое слово struct вместо class.
Но в MSDN их называют интегрированным ключевым словом и нигде не написано что эта структура:
MSDN 2002 (C# 1.0):
MSDN 2008 (C# 3.0):
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение