Структуры, объединения и перечисления в C ++

Опубликовано: 29 Декабря, 2021

В этой статье мы обсудим структуры, объединения и перечисления, а также их различия.

  • Структура - это определяемый пользователем тип данных, доступный в C ++.
  • Структуры используются для объединения различных типов данных, так же как массив используется для объединения одного и того же типа типов данных.
  • Структура объявляется с помощью ключевого слова « struct ». Когда мы объявляем переменную структуры, нам нужно написать ключевое слово « struct на языке C, но для C ++ это ключевое слово не обязательно.

Синтаксис:

структура 
{
   // Объявление структуры
}

Ниже приведена программа на C ++, демонстрирующая использование структуры:

C ++

// C++ program to demonstrate the
// making of structure
#include <bits/stdc++.h>
using namespace std;
// Define structure
struct GFG {
int G1;
char G2;
float G3;
};
// Driver Code
int main()
{
// Declaring a Structure
struct GFG Geek;
Geek.G1 = 85;
Geek.G2 = 'G' ;
Geek.G3 = 989.45;
cout << "The value is : "
<< Geek.G1 << endl;
cout << "The value is : "
<< Geek.G2 << endl;
cout << "The value is : "
<< Geek.G3 << endl;
return 0;
}
Выход:
Значение: 85
Значение: G
Значение: 989,45

Объяснение: В приведенном выше коде эти значения присваиваются полям (G1, G2, G3) сотрудника структуры, а в конце печатается значение «зарплата».

Структура с использованием typedef : typedef - это ключевое слово, которое используется для присвоения нового имени любому существующему типу данных. Ниже приведена программа на C ++, иллюстрирующая использование структуры с использованием typedef :

C ++

// C++ program to demonstrate the use
// of struct using typedef
#include <bits/stdc++.h>
using namespace std;
// Declaration of typedef
typedef struct GeekForGeeks {
int G1;
char G2;
float G3;
} GFG;
// Driver Code
int main()
{
GFG Geek;
Geek.G1 = 85;
Geek.G2 = 'G' ;
Geek.G3 = 989.45;
cout << "The value is : "
<< Geek.G1 << endl;
cout << "The value is : "
<< Geek.G2 << endl;
cout << "The value is : "
<< Geek.G3 << endl;
return 0;
}
Выход:

Значение: 85
Значение: G
Значение: 989,45

Объяснение:

  • В приведенном выше коде ключевое слово « typedef » используется перед структурой, а после закрывающей скобки структуры записывается «GFG ».
  • Теперь создайте переменные структуры без использования ключевого слова « структура » и имени структуры.
  • Был создан экземпляр структуры с именем «Компьютерщик», просто написав перед ним «GFG».

Объединения: объединение - это тип структуры, который может использоваться, когда объем используемой памяти является ключевым фактором.

  • Подобно структуре, объединение может содержать разные типы данных.
  • Каждый раз, когда новая переменная инициализируется из объединения, она перезаписывает предыдущую в языке C, но в C ++ нам также не требуется это ключевое слово и используется это место в памяти.
  • Это наиболее полезно, когда тип данных, передаваемых через функции, неизвестен, использование объединения, которое содержит все возможные типы данных, может решить эту проблему.
  • Он объявляется с использованием ключевого слова « union ».

Ниже представлена программа на C ++, иллюстрирующая реализацию union:

C ++

// C++ program to illustrate the use
// of the unions
#include <iostream>
using namespace std;
// Defining a Union
union GFG {
int Geek1;
char Geek2;
float Geek3;
};
// Driver Code
int main()
{
// Intializing Union
union GFG G1, G2, G3;
G1.Geek1 = 34;
G2.Geek2 = 34;
G3.Geek3 = 34.34;
// Printing values
cout << "The first value at "
<< "the allocated momery : "
<< G1.Geek1 << endl;
cout << "The next value stored "
<< "after removing the "
<< "prevous value : "
<< G2.Geek2 << endl;
cout << "The Final value value "
<< "at the same allocated "
<< "memeory space : "
<< G3.Geek3 << endl;
return 0;
}
Выход:

The first value at the allocated momery : 34
The next value stored after removing the prevous value : ”
The Final value value at the same allocated memeory space : 34.34

Объяснение: В приведенном выше коде, когда переменная «Geek1» инициализирована, она отображает значение, затем «Geek 2» перезаписывается и больше не существует, поскольку Geek2 имеет тип char, поэтому он не отображает никакого значения.

Перечисления : перечисления - это определяемые пользователем типы, состоящие из именованных целочисленных констант.

  • Это помогает назначать константы набору имен, чтобы программу было легче читать, поддерживать и понимать.
  • Перечисление объявляется с использованием ключевого слова « enum ».

Ниже приведена программа на C ++, иллюстрирующая использование enum:

C ++

// C++ program to illustrate the use
// of the Enums
#include <bits/stdc++.h>
using namespace std;
// Defining an enum
enum GeeksforGeeks { Geek1,
Geek2,
Geek3 };
GeeksforGeeks G1 = Geek1;
GeeksforGeeks G2 = Geek2;
GeeksforGeeks G3 = Geek3;
// Driver Code
int main()
{
cout << "The numerical value "
<< "assigned to Geek1 : "
<< G1 << endl;
cout << "The numerical value "
<< "assigned to Geek2 : "
<< G2 << endl;
cout << "The numerical value "
<< "assigned to Geek3 : "
<< G3 << endl;
return 0;
}
Выход:
Числовое значение, присвоенное Geek1: 0
Числовое значение, присвоенное Geek2: 1
Числовое значение, присвоенное Geek3: 2

Объяснение: В приведенном выше коде именованным константам, таким как Geek1, Geek2 и Geek3, присвоены целочисленные значения, такие как 0, 1, 2 соответственно, в то время как выводится.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Предыдущий
Метод String Class stripLeading () в Java с примерами
Следующий
Банкомат с использованием обработки файлов на C ++
Рекомендуемые статьи
Страница :
Статья предоставлена:
аналистаюш
@analystayush
Голосуйте за трудности
Текущая сложность: средняя
Улучшено:
  • onlyeshita01
Теги статьи:
  • C-Struct-Union-Enum
  • cpp-struct
  • Структура и союз
  • C ++
  • Программы на C ++
Теги практики:
  • cpp-struct
  • CPP
Сообщить о проблеме
C++

РЕКОМЕНДУЕМЫЕ СТАТЬИ

20 Февраля, 2023
20 Февраля, 2023
20 Февраля, 2023
20 Февраля, 2023
20 Февраля, 2023