Структура С++ с примером
Что такое структура в C++?
СТРУКТУРА — это структура данных C++, которую можно использовать для хранения вместе элементов разных типов данных. В C++ структура — это определяемый пользователем тип данных. Структура создает тип данных для группировки элементов данных разных типов под одним типом данных.
Например:
Предположим, вам нужно хранить информацию о ком-то, его имени, гражданстве и возрасте. Вы можете создавать переменные, такие как имя, гражданство и возраст, чтобы хранить данные отдельно.
Однако в будущем вам может понадобиться хранить информацию о многих людях. Это означает, что будут созданы переменные для разных людей. Например, имя1, гражданство1, возраст1 и т. д. Чтобы этого избежать, лучше создать структуру.
Из этого руководства по C++ вы узнаете:
- Что такое структура в C++?
- Когда использовать структуру?
- Инициализация структуры C++
- Создание экземпляров структуры
- Доступ к членам структуры
- Указатели на структуру
- Структура как аргумент функции
- Ограничение структуры 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 являются целыми числами, когда структура создается, память не выделяется. Память выделяется только после добавления переменной в структуру.
Создание экземпляров структуры
В приведенном выше примере мы создали структуру с именем Person. Мы можем создать структурную переменную следующим образом:
Person p;
p — это структурная переменная типа Person. Мы можем использовать эту переменную для доступа к членам структуры.
Доступ к членам структуры
Чтобы получить доступ к элементам структуры, мы используем экземпляр структуры и оператор точки (.). Например, чтобы получить доступ к возрасту члена структуры Person:
p.age = 27;
Мы получили доступ к возрасту члена структуры Person, используя экземпляр структуры, p. Затем мы установили значение возраста участника на 27 лет.
Пример 1:
#include <iostream> using 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.
- Начало тела структуры.
- Создайте член структуры с именем Citizens типа integer.
- Создайте член структуры с именем age целочисленного типа.
- Конец тела структуры.
- Вызовите функцию main(). Логика программы должна быть добавлена в тело этой функции.
- Создайте экземпляр структуры Person и назовите его p.
- Установите значение гражданства члена структуры равным 1.
- Установите значение возраста члена структуры равным 27.
- Выведите значение гражданства члена структуры на консоли вместе с другим текстом.
- Выведите значение возраста члена структуры на консоль вместе с другим текстом.
- При успешном выполнении программа должна вернуть значение.
- Конец функции main().
Указатели на структуру
Можно создать указатель, указывающий на структуру. Это похоже на то, как создаются указатели, указывающие на собственные типы данных, такие как int, float, double и т. д. Обратите внимание, что указатель в C++ будет хранить ячейку памяти.
Пример 2:
#include <iostream> using 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.
- Начало тела длины структуры.
- Создайте член структуры с именем измерители целочисленного типа данных.
- Создайте член структуры с именем сантиметры целого числа.
- Конец тела длины структуры.
- Вызвать функцию main().
- Начало тела функции main().
- Создайте переменную-указатель *ptr и нормальную переменную l типа Length.
- Сохраните адрес переменной l в нашей переменной-указателе.
- Отобразить на консоли сообщение с просьбой ввести значение переменных счетчиков.
- Прочитайте значение, введенное пользователем с клавиатуры. Доступ к измерителям функций-членов здесь осуществляется с помощью переменной-указателя.
- Отображать на консоли сообщение с просьбой ввести значение переменной в сантиметрах.
- Прочитайте значение, введенное пользователем с клавиатуры. Доступ к сантиметрам функции-члена здесь осуществляется с помощью переменной-указателя.
- Отображать значения, считанные пользователем, на консоли вместе с другим текстом.
- Программа должна возвращать значение после успешного выполнения.
- Конец тела функции main().
Структура как аргумент функции
Вы можете передать структуру функции в качестве аргумента. Это делается так же, как передача обычного аргумента. Переменные структуры также могут быть переданы в функцию. Хороший пример — когда вам нужно отобразить значения членов структуры. Давайте продемонстрируем это:
Пример 3:
#include<iostream> using 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<<endl; cout << " Person age: " << p.age; }
Вывод:
Вот скриншот кода:
Пояснение кода:
- Включите файл заголовка iostream в наш файл. Затем мы будем использовать его функции без ошибок.
- Включите пространство имен std в нашу программу, чтобы использовать его классы. Нам не нужно будет вызывать пространство имен, чтобы использовать его классы.
- Создайте структуру с именем Person.
- Начало тела структуры Person.
- Создайте элемент структуры Person. Член называется гражданством и имеет целочисленный тип.
- Создайте элемент структуры Person. Член называется age и имеет целочисленный тип.
- Конец тела структуры Person.
- Создайте функцию, которая принимает в качестве аргумента экземпляр структуры Person, p.
- Вызов основной функции. Символ { отмечает начало тела функции main().
- Создайте экземпляр структуры Person и назовите его p.
- Получите доступ к переменной Citizen, используя экземпляр структуры p и присвоив ей значение 1.
- Доступ к переменной-члену структуры age с помощью экземпляра структуры p и присвоения ему значения 27.
- Вызвать функцию и передать ей в качестве аргумента экземпляр структуры Person, p.
- Функция должна возвращать значение после успешного выполнения.
- Конец тела функции main().
- Создайте тело функции.
- Начало тела функции.
- Доступ к значению гражданства члена структуры и печать его на консоли вместе с другим текстом.
- Получите доступ к значению возраста элемента структуры и распечатайте его на консоли вместе с другим текстом.
- Конец тела функции.
Ограничение структуры C++
Ниже приведены ограничения структур:
- Тип данных struct нельзя рассматривать как встроенные типы данных.
- Такие операторы, как +- и другие, нельзя использовать для структурных переменных.
- Структуры не поддерживают скрытие данных. Доступ к элементам структуры может получить любая функция независимо от ее области действия.
- Статические элементы нельзя объявлять внутри тела структуры.
- Конструкторы нельзя создавать внутри структуры.
Обзор:
- Структура – это структура данных, в которой хранятся элементы данных, принадлежащие разным типам.
- В массиве хранятся элементы данных одного типа, а в структуре хранятся элементы данных разных типов.
- Структура должна использоваться, когда не ожидается, что элементы данных изменят значение.
- Доступ к элементам структуры осуществляется с помощью оператора точки (.).
- Мы должны создать экземпляр структуры.
- Чтобы создать структуру C++, мы используем ключевое слово struct.
- Указатели, указывающие на структуру, создаются аналогично указателям, указывающим на обычные типы.
- Структура может быть передана в качестве аргумента функции точно так же, как передаются обычные функции.
Язык C
- C-структуры и указатели
- Цикл C++ do…while с примерами
- Оператор C++ Switch Case с ПРИМЕРОМ
- C++ динамическое выделение массивов с примером
- Указатели C++ с примерами
- Тип данных Char C++ с примерами
- Перегрузка оператора C++ с примерами
- std::list в C++ с примером
- Функции C++ с примерами программ
- Разница между структурой и классом:объяснение на примере C++