Лучшее руководство по C ++ структуры данных в 2024 году. В этом руководстве вы можете изучить Определение структуры,Доступ к члену структуры,Структура в качестве параметра функции,Указатель на структуру,ЬурейеЕ ключевое слово,
C / C ++ позволяет определить переменную массива для хранения и тот же тип элементов данных, ноструктура C ++, еще определяемые пользователем типы данных , доступных, который позволяет хранить различные типы элементов данных.
Структура используется для представления записи, предположим, что вы хотите отслеживать динамическую библиотеку книг, вам, возможно, придется следить за каждой книги следующие свойства:
Для того , чтобы определить структуру, вы должны использовать операторSTRUCT.структура оператор определяет новый тип данных, который содержит множество элементов, оператор формата структура выглядит следующим образом:
struct [structure tag] { member definition; member definition; ru. member definition; } [one or more structure variables];
тег структуры не является обязательным, каждое определение является членом стандартное определение переменной, такой как INT I, или поплавок п, или другие действительные определения переменных.В конце структуры, определенной, последним перед точкой с запятой, вы можете указать один или несколько структурных переменных, которые не является обязательным. Вот структура декларации Бронировать по:
struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }book;
Для того , чтобы получить доступ к членам структуры, мы используемоператор доступа к члену (.).Оператор доступа член представляет собой период структура имен переменных и структуры наших членов хотят получить доступ между ними. Вы можете определить тип переменной структуры , используя ключевое словоSTRUCT.Следующий пример демонстрирует использование структуры:
#include <iostream> #include <cstring> using namespace std; struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { struct Books Book1; // 声明 Book1,类型为 Book struct Books Book2; // 声明 Book2,类型为 Book // Book1 详述 strcpy( Book1.title, "Learn C++ Programming"); strcpy( Book1.author, "Chand Miyan"); strcpy( Book1.subject, "C++ Programming"); Book1.book_id = 6495407; // Book2 详述 strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Yakit Singha"); strcpy( Book2.subject, "Telecom"); Book2.book_id = 6495700; // 输出 Book1 信息 cout << "Book 1 title : " << Book1.title <<endl; cout << "Book 1 author : " << Book1.author <<endl; cout << "Book 1 subject : " << Book1.subject <<endl; cout << "Book 1 id : " << Book1.book_id <<endl; // 输出 Book2 信息 cout << "Book 2 title : " << Book2.title <<endl; cout << "Book 2 author : " << Book2.author <<endl; cout << "Book 2 subject : " << Book2.subject <<endl; cout << "Book 2 id : " << Book2.book_id <<endl; return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Book 1 title : Learn C++ Programming Book 1 author : Chand Miyan Book 1 subject : C++ Programming Book 1 id : 6495407 Book 2 title : Telecom Billing Book 2 author : Yakit Singha Book 2 subject : Telecom Book 2 id : 6495700
Вы можете поместить структуру в качестве параметра функции, порядок Сената подобно другим типам переменных или указателей. Вы можете использовать приведенный выше пример, как получить доступ к переменным структуры:
#include <iostream> #include <cstring> using namespace std; void printBook( struct Books book ); struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { struct Books Book1; // 声明 Book1,类型为 Book struct Books Book2; // 声明 Book2,类型为 Book // Book1 详述 strcpy( Book1.title, "Learn C++ Programming"); strcpy( Book1.author, "Chand Miyan"); strcpy( Book1.subject, "C++ Programming"); Book1.book_id = 6495407; // Book2 详述 strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Yakit Singha"); strcpy( Book2.subject, "Telecom"); Book2.book_id = 6495700; // 输出 Book1 信息 printBook( Book1 ); // 输出 Book2 信息 printBook( Book2 ); return 0; } void printBook( struct Books book ) { cout << "Book title : " << book.title <<endl; cout << "Book author : " << book.author <<endl; cout << "Book subject : " << book.subject <<endl; cout << "Book id : " << book.book_id <<endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Book title : Learn C++ Programming Book author : Chand Miyan Book subject : C++ Programming Book id : 6495407 Book title : Telecom Billing Book author : Yakit Singha Book subject : Telecom Book id : 6495700
Вы можете определить указатель на структуру, способ определения ссылок на другие аналогичные типы переменной указателя, следующим образом:
struct Books *struct_pointer;
Теперь вы можете обратиться переменные структуры хранения в приведенном выше определении переменной указателя. Чтобы найти адрес переменной структуры, и оператор перед именем структуры, следующим образом:
struct_pointer = &Book1;
Чтобы использовать указатель на доступ к точкам элемент структуры к структуре, вы должны использовать оператор ->, следующим образом:
struct_pointer->title;
Давайте использовать указатель на структуру, чтобы переписать приведенный выше пример, это поможет вам понять концепцию структуры указателей:
#include <iostream> #include <cstring> using namespace std; void printBook( struct Books *book ); struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { struct Books Book1; // 声明 Book1,类型为 Book struct Books Book2; // 声明 Book2,类型为 Book */ // Book1 详述 strcpy( Book1.title, "Learn C++ Programming"); strcpy( Book1.author, "Chand Miyan"); strcpy( Book1.subject, "C++ Programming"); Book1.book_id = 6495407; // Book2 详述 strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Yakit Singha"); strcpy( Book2.subject, "Telecom"); Book2.book_id = 6495700; // 通过传 Book1 的地址来输出 Book1 信息 printBook( &Book1 ); // 通过传 Book2 的地址来输出 Book2 信息 printBook( &Book2 ); return 0; } // 该函数以结构指针作为参数 void printBook( struct Books *book ) { cout << "Book title : " << book->title <<endl; cout << "Book author : " << book->author <<endl; cout << "Book subject : " << book->subject <<endl; cout << "Book id : " << book->book_id <<endl; }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Book title : Learn C++ Programming Book author : Chand Miyan Book subject : C++ Programming Book id : 6495407 Book title : Telecom Billing Book author : Yakit Singha Book subject : Telecom Book id : 6495700
Вот более простой способ, чтобы определить структуру, вы можете создать тип, чтобы принять "Alias". Например:
typedef struct { char title[50]; char author[50]; char subject[100]; int book_id; }Books;
Теперь вы можете использовать для определения переменных типакнигиКниги, без необходимости использовать STRUCT ключевое слово. Ниже приведены примеры:
Books Book1, Book2;
Вы можете использовать ключевое словоTYPEDEF , чтобы определить , не структурный тип, следующим образом :
typedef long int *pint32; pint32 x, y, z;
х, у и г указывают на длинный Int указатель длинное целое.