Структура C ++ с примером

Содержание:

Anonim

Что такое структура в 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:

#include 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;}

Выход:

Вот скриншот кода:

Пояснение к коду:

  1. Включите файл заголовка iostream в нашу программу, чтобы использовать определенные в нем функции.
  2. Включите пространство имен std, чтобы использовать его классы, не вызывая его.
  3. Создайте структуру с именем Person.
  4. Начало тела структуры.
  5. Создайте член структуры с именем гражданство целочисленного типа.
  6. Создайте член структуры с именем age целочисленного типа.
  7. Конец тела структуры.
  8. Вызовите функцию main (). Логика программы должна быть добавлена ​​в тело этой функции.
  9. Создайте экземпляр структуры Person и дайте ему имя p.
  10. Установите значение гражданства члена структуры равным 1.
  11. Установите значение возраста члена структуры равным 27.
  12. Напечатайте значение гражданства члена структуры на консоли вместе с другим текстом.
  13. Напечатайте значение возраста члена структуры на консоли вместе с другим текстом.
  14. Программа должна вернуть значение в случае успешного выполнения.
  15. Конец функции main ().

Указатели на структуру

Можно создать указатель, указывающий на структуру. Это похоже на то, как создаются указатели, указывающие на собственные типы данных, такие как int, float, double и т. Д. Обратите внимание, что указатель в C ++ будет хранить место в памяти.

Пример 2:

#include 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;}

Выход:

Вот скриншот кода:

Пояснение к коду:

  1. Включите файл заголовка iostream в нашу программу, чтобы использовать его функции.
  2. Включите пространство имен std в нашу программу, чтобы использовать его классы, не вызывая его.
  3. Создайте структуру с именем Length.
  4. Начало тела структуры Length.
  5. Создайте член структуры с именем meter целочисленного типа данных.
  6. Создайте член структуры с именем сантиметры целочисленного типа.
  7. Конец тела структуры Длина.
  8. Вызовите функцию main ().
  9. Начало тела функции main ().
  10. Создайте указатель на переменную * ptr и обычную переменную l типа Length.
  11. Сохраните адрес переменной l в нашей переменной-указателе.
  12. Выведите на консоль сообщение с просьбой ввести значение для переменных счетчиков.
  13. Прочтите значение, введенное пользователем с клавиатуры. Доступ к счетчикам функций-членов здесь осуществляется с помощью переменной-указателя.
  14. Выведите на консоль сообщение с просьбой ввести значение переменной в сантиметрах.
  15. Считайте значение, введенное пользователем с клавиатуры. Доступ к функции-члену сантиметров здесь осуществляется с помощью переменной-указателя.
  16. Отображение значений, считанных пользователем, на консоли рядом с другим текстом.
  17. Программа должна возвращать значение при успешном выполнении.
  18. Конец тела функции 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<

Выход:

Вот скриншот кода:

Пояснение к коду:

  1. Включите файл заголовка iostream в наш файл. Затем мы будем использовать его функции без ошибок.
  2. Включите пространство имен std в нашу программу, чтобы использовать его классы. Нам не нужно будет вызывать пространство имен, чтобы использовать его классы.
  3. Создайте структуру с именем Person.
  4. Начало тела структуры Person.
  5. Создайте член структуры Person. Член называется гражданством и имеет целочисленный тип.
  6. Создайте член структуры Person. Член называется age и имеет целочисленный тип.
  7. Конец тела структуры Person.
  8. Создайте функцию, которая принимает в качестве аргумента экземпляр структуры Person, p.
  9. Вызовите основную функцию. {Отмечает начало тела функции main ().
  10. Создайте экземпляр структуры Person и дайте ему имя p.
  11. Получите доступ к переменной-члену структуры гражданства, используя экземпляр структуры p и присвоив ей значение 1.
  12. Получите доступ к переменной-члену структуры age, используя экземпляр структуры p и присвоив ей значение 27.
  13. Вызовите функцию и передайте ей экземпляр структуры Person p в качестве аргумента.
  14. Функция должна возвращать значение при успешном выполнении.
  15. Конец тела функции main ().
  16. Создайте тело функции.
  17. Начало тела функции.
  18. Получите доступ к значению гражданства члена структуры и распечатайте его на консоли вместе с другим текстом.
  19. Получите доступ к значению возраста члена структуры и распечатайте его на консоли вместе с другим текстом.
  20. Конец тела функции.

Ограничение структуры C ++

Ниже приведены ограничения структур:

  • Тип данных struct нельзя рассматривать как встроенные типы данных.
  • Такие операторы, как + - и другие, не могут использоваться для структурных переменных.
  • Структуры не поддерживают скрытие данных. Доступ к членам структуры может получить любая функция независимо от ее области действия.
  • Статические члены не могут быть объявлены внутри тела структуры.
  • Конструкторы нельзя создавать внутри конструкции.

Резюме:

  • Структура - это структура данных, в которой хранятся элементы данных, принадлежащие к разным типам.
  • В то время как массив хранит элементы данных аналогичного типа, структура хранит элементы данных разных типов.
  • Структуру следует использовать, когда не ожидается, что элементы данных изменят значение.
  • Доступ к членам структуры осуществляется с помощью оператора точка (.).
  • Нам нужно создать экземпляр структуры.
  • Чтобы создать структуру C ++, мы используем ключевое слово struct.
  • Указатели, указывающие на структуру, создаются аналогично тому, как создаются указатели, указывающие на обычные типы.
  • Структура может быть передана в качестве аргумента функции точно так же, как передаются обычные функции.