Что такое структура в C ++?
STRUCT является ++ , структура данных C , которые могут быть использованы для хранения вместе элементы различных типов данных. В C ++ структура - это определяемый пользователем тип данных. Структура создает тип данных для группирования элементов данных разных типов под одним типом данных.
Например:
Предположим, вам нужно сохранить информацию о ком-то, его имени, гражданстве и возрасте. Вы можете создавать переменные, такие как имя, гражданство и возраст, чтобы хранить данные отдельно.
Однако в будущем вам может понадобиться хранить информацию о многих людях. Это означает, что будут созданы переменные для разных людей. Например, имя1, гражданство1, возраст1 и т. Д. Чтобы этого избежать, лучше создать структуру.
В этом руководстве по C ++ вы узнаете:
- Что такое структура в C ++?
- Когда использовать структуру?
- Инициализация структуры C ++
- Создание экземпляров Struct
- Доступ к членам структуры
- Указатели на структуру
- Структура как аргумент функции
- Ограничение структуры C ++
Когда использовать структуру?
Вот несколько причин использования структуры в C ++.
- Используйте структуру, когда вам нужно хранить элементы разных типов данных в одном типе данных.
- Структуры C ++ являются типом значения, а не ссылочным типом. Используйте структуру, если вы не собираетесь изменять свои данные после создания.
Инициализация структуры C ++
Чтобы создать структуру C ++, мы используем ключевое слово struct, за которым следует идентификатор. Идентификатор становится именем структуры. Вот синтаксис для создания структуры C ++:
Синтаксис:
struct struct_name{// struct members}
В приведенном выше синтаксисе мы использовали ключевое слово struct. Struct_name - это имя структуры.
Члены структуры добавляются в фигурные скобки. Эти члены, вероятно, принадлежат к разным типам данных.
Например:
struct Person{char name[30];int citizenship;int age;}
В приведенном выше примере Person - это структура с тремя членами. Члены включают имя, гражданство и возраст. Один член имеет тип данных char, а остальные 2 являются целыми числами, когда структура создается, память не выделяется. Память выделяется только после добавления переменной в структуру.
Создание экземпляров Struct
В приведенном выше примере мы создали структуру с именем Person. Мы можем создать структурную переменную следующим образом:
Person p;
P - это структурная переменная типа Person. Мы можем использовать эту переменную для доступа к членам структуры.
Доступ к членам структуры
Для доступа к членам структуры мы используем экземпляр структуры и оператор точки (.). Например, чтобы получить доступ к возрасту члена структуры Person:
p.age = 27;
Мы получили доступ к возрасту члена структуры Person с помощью экземпляра структуры p. Затем мы установили значение возраста участника равным 27.
Пример 1:
#includeusing namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}
Выход:
Вот скриншот кода:
Пояснение к коду:
- Включите файл заголовка iostream в нашу программу, чтобы использовать определенные в нем функции.
- Включите пространство имен std, чтобы использовать его классы, не вызывая его.
- Создайте структуру с именем Person.
- Начало тела структуры.
- Создайте член структуры с именем гражданство целочисленного типа.
- Создайте член структуры с именем age целочисленного типа.
- Конец тела структуры.
- Вызовите функцию main (). Логика программы должна быть добавлена в тело этой функции.
- Создайте экземпляр структуры Person и дайте ему имя p.
- Установите значение гражданства члена структуры равным 1.
- Установите значение возраста члена структуры равным 27.
- Напечатайте значение гражданства члена структуры на консоли вместе с другим текстом.
- Напечатайте значение возраста члена структуры на консоли вместе с другим текстом.
- Программа должна вернуть значение в случае успешного выполнения.
- Конец функции main ().
Указатели на структуру
Можно создать указатель, указывающий на структуру. Это похоже на то, как создаются указатели, указывающие на собственные типы данных, такие как int, float, double и т. Д. Обратите внимание, что указатель в C ++ будет хранить место в памяти.
Пример 2:
#includeusing namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}
Выход:
Вот скриншот кода:
Пояснение к коду:
- Включите файл заголовка iostream в нашу программу, чтобы использовать его функции.
- Включите пространство имен std в нашу программу, чтобы использовать его классы, не вызывая его.
- Создайте структуру с именем Length.
- Начало тела структуры Length.
- Создайте член структуры с именем meter целочисленного типа данных.
- Создайте член структуры с именем сантиметры целочисленного типа.
- Конец тела структуры Длина.
- Вызовите функцию main ().
- Начало тела функции main ().
- Создайте указатель на переменную * ptr и обычную переменную l типа Length.
- Сохраните адрес переменной l в нашей переменной-указателе.
- Выведите на консоль сообщение с просьбой ввести значение для переменных счетчиков.
- Прочтите значение, введенное пользователем с клавиатуры. Доступ к счетчикам функций-членов здесь осуществляется с помощью переменной-указателя.
- Выведите на консоль сообщение с просьбой ввести значение переменной в сантиметрах.
- Считайте значение, введенное пользователем с клавиатуры. Доступ к функции-члену сантиметров здесь осуществляется с помощью переменной-указателя.
- Отображение значений, считанных пользователем, на консоли рядом с другим текстом.
- Программа должна возвращать значение при успешном выполнении.
- Конец тела функции main ().
Структура как аргумент функции
Вы можете передать структуру функции в качестве аргумента. Это делается так же, как и передача обычного аргумента. Структурные переменные также могут быть переданы функции. Хороший пример - когда вам нужно отобразить значения членов структуры. Продемонстрируем это:
Пример 3:
#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship< Выход:
Вот скриншот кода:
Пояснение к коду:
- Включите файл заголовка iostream в наш файл. Затем мы будем использовать его функции без ошибок.
- Включите пространство имен std в нашу программу, чтобы использовать его классы. Нам не нужно будет вызывать пространство имен, чтобы использовать его классы.
- Создайте структуру с именем Person.
- Начало тела структуры Person.
- Создайте член структуры Person. Член называется гражданством и имеет целочисленный тип.
- Создайте член структуры Person. Член называется age и имеет целочисленный тип.
- Конец тела структуры Person.
- Создайте функцию, которая принимает в качестве аргумента экземпляр структуры Person, p.
- Вызовите основную функцию. {Отмечает начало тела функции main ().
- Создайте экземпляр структуры Person и дайте ему имя p.
- Получите доступ к переменной-члену структуры гражданства, используя экземпляр структуры p и присвоив ей значение 1.
- Получите доступ к переменной-члену структуры age, используя экземпляр структуры p и присвоив ей значение 27.
- Вызовите функцию и передайте ей экземпляр структуры Person p в качестве аргумента.
- Функция должна возвращать значение при успешном выполнении.
- Конец тела функции main ().
- Создайте тело функции.
- Начало тела функции.
- Получите доступ к значению гражданства члена структуры и распечатайте его на консоли вместе с другим текстом.
- Получите доступ к значению возраста члена структуры и распечатайте его на консоли вместе с другим текстом.
- Конец тела функции.
Ограничение структуры C ++
Ниже приведены ограничения структур:
- Тип данных struct нельзя рассматривать как встроенные типы данных.
- Такие операторы, как + - и другие, не могут использоваться для структурных переменных.
- Структуры не поддерживают скрытие данных. Доступ к членам структуры может получить любая функция независимо от ее области действия.
- Статические члены не могут быть объявлены внутри тела структуры.
- Конструкторы нельзя создавать внутри конструкции.
Резюме:
- Структура - это структура данных, в которой хранятся элементы данных, принадлежащие к разным типам.
- В то время как массив хранит элементы данных аналогичного типа, структура хранит элементы данных разных типов.
- Структуру следует использовать, когда не ожидается, что элементы данных изменят значение.
- Доступ к членам структуры осуществляется с помощью оператора точка (.).
- Нам нужно создать экземпляр структуры.
- Чтобы создать структуру C ++, мы используем ключевое слово struct.
- Указатели, указывающие на структуру, создаются аналогично тому, как создаются указатели, указывающие на обычные типы.
- Структура может быть передана в качестве аргумента функции точно так же, как передаются обычные функции.