C++ Struktura Z Przykładem

Czym jest struktura C++?

A STRUKTURA jest C++ struktura danych, która może być używana do przechowywania elementów różnych typów danych. W C++, struktura jest typem danych zdefiniowanym przez użytkownika. Struktura tworzy typ danych do grupowania elementów różnych typów danych w ramach jednego typu danych.

Na przykład:

Załóżmy, że chcesz przechowywać informacje o jakiejś osobie, jej imieniu, obywatelstwie i wieku. Możesz tworzyć zmienne, takie jak imię i nazwisko, obywatelstwo i wiek, aby przechowywać dane oddzielnie.

Jednak w przyszłości może zaistnieć potrzeba przechowywania informacji o wielu osobach. Oznacza to, że zostaną utworzone zmienne dla różnych osób. Na przykład imię1, obywatelstwo1, wiek1 itd. Aby tego uniknąć, lepiej utworzyć strukturę.

Kiedy używać struktury?

Oto kilka powodów używania struktury w C++.

  • Użyj struktury, jeśli chcesz przechowywać elementy różnych typów danych w jednym typie danych.
  • C++ Struktury są typem wartościowym, a nie typem referencyjnym. Użyj struktury, jeśli nie zamierzasz modyfikować danych po utworzeniu.

C++ Inicjalizacja struktury

Aby utworzyć C++ struktury, używamy słowa kluczowego struct, po którym następuje identyfikator. Identyfikator staje się nazwą struktury. Oto składnia tworzenia pliku a C++ struktura:

Składnia:

struct struct_name  
{  
     // struct members
}   

W powyższej składni użyliśmy słowa kluczowego struct. Nazwa_struktury to nazwa struktury.

Elementy struktury są dodawane w nawiasach klamrowych. Członkowie ci prawdopodobnie należą do różnych typów danych.

Na przykład:

struct Person  
{  
    char name[30];  
     int citizenship;  
     int age;  
}  

W powyższym przykładzie Osoba jest strukturą składającą się z trzech elementów. Członkowie obejmują imię i nazwisko, obywatelstwo i wiek. Jeden element ma typ danych char, a pozostałe 2 są liczbami całkowitymi. Kiedy tworzona jest struktura, pamięć nie jest przydzielana. Pamięć jest przydzielana dopiero po dodaniu zmiennej do struktury.

Tworzenie wystąpień konstrukcji

W powyższym przykładzie utworzyliśmy strukturę o nazwie Osoba. Możemy utworzyć zmienną strukturalną w następujący sposób:

Person p;

p jest zmienną strukturalną typu Osoba. Możemy użyć tej zmiennej, aby uzyskać dostęp do elementów struktury.

Dostęp do elementów struktury

Aby uzyskać dostęp do członków struktury, używamy instancji struktury i operatora kropki (.). Na przykład, aby uzyskać dostęp do wieku członka struktury Person:

p.age = 27;

Uzyskaliśmy dostęp do wieku członkowskiego struktury Person przy użyciu instancji struktury, str. Następnie ustawiliśmy wartość wieku członka na 27 lat.

1 przykład:

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

Wyjście:

Dostęp do elementów struktury

Oto zrzut ekranu kodu:

Dostęp do elementów struktury

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego programu, aby móc korzystać ze zdefiniowanych w nim funkcji.
  2. Dołącz przestrzeń nazw std, aby używać jej klas bez wywoływania jej.
  3. Utwórz strukturę o nazwie Person.
  4. Początek treści struktury.
  5. Utwórz element członkowski struktury o nazwie Citizenship typu integer.
  6. Utwórz element członkowski struktury o nazwie age typu integer.
  7. Koniec treści struktury.
  8. Wywołaj funkcję main(). Logikę programu należy dodać w treści tej funkcji.
  9. Utwórz instancję struktury Person i nadaj jej nazwę p.
  10. Ustaw wartość obywatelstwa członkowskiego struktury na 1.
  11. Ustaw wartość wieku elementu członkowskiego struktury na 27.
  12. Wydrukuj wartość obywatelstwa członkowskiego struktury na konsoli wraz z innym tekstem.
  13. Wydrukuj wartość wieku członka struktury na konsoli wraz z innym tekstem.
  14. Program powinien zwrócić wartość, jeśli działa pomyślnie.
  15. Koniec funkcji main().

Wskaźniki do struktury

Można utworzyć wskaźnik wskazujący na strukturę. Jest to podobne do sposobu tworzenia wskaźników wskazujących na natywne typy danych, takie jak int, float, double itp. Należy zauważyć, że wskaźnik w C++ zapisze lokalizację w pamięci.

2 przykład:

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

Wyjście:

Wskaźniki do struktury

Oto zrzut ekranu kodu:

Wskaźniki do struktury

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego programu, aby móc korzystać z jego funkcji.
  2. Dołącz przestrzeń nazw std do naszego programu, aby móc korzystać z jej klas bez wywoływania jej.
  3. Utwórz strukturę o nazwie Długość.
  4. Początek treści konstrukcji. Długość.
  5. Utwórz element członkowski struktury o nazwie „metry” o typie danych całkowitych.
  6. Utwórz element struktury o nazwie centymetry typu integer.
  7. Koniec korpusu konstrukcji Długość.
  8. Wywołaj funkcję main().
  9. Początek treści funkcji main().
  10. Utwórz zmienną wskaźnikową *ptr i normalną zmienną l typu Długość.
  11. Zapisz adres zmiennej l w naszym zmienna wskaźnikowa.
  12. Wyświetl na konsoli komunikat z prośbą o wprowadzenie wartości dla liczników zmiennych.
  13. Odczytaj wartość wprowadzoną przez użytkownika za pomocą klawiatury. Dostęp do liczników funkcji składowych można uzyskać za pomocą zmiennej wskaźnikowej.
  14. Wyświetl komunikat na konsoli z prośbą o wprowadzenie wartości dla zmiennych centymetrów.
  15. Odczytaj wartość wprowadzoną przez użytkownika za pomocą klawiatury. Dostęp do funkcji członkowskiej centymetry można uzyskać za pomocą zmiennej wskaźnikowej.
  16. Wyświetl wartości odczytane od użytkownika na konsoli wraz z innym tekstem.
  17. Program musi zwrócić wartość po pomyślnym wykonaniu.
  18. Koniec treści funkcji main().

Struktura jako argument funkcji

Możesz przekazać strukturę do funkcji jako argument. Odbywa się to w taki sam sposób, jak przekazywanie normalnego argumentu. Zmienne strukturalne można również przekazać do funkcji. Dobrym przykładem jest sytuacja, w której trzeba wyświetlić wartości elementów członkowskich struktury. Zademonstrujmy to:

3 przykład:

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

Wyjście:

Struktura jako argument funkcji

Oto zrzut ekranu kodu:

Struktura jako argument funkcji

Wyjaśnienie kodu:

  1. Dołącz plik nagłówkowy iostream do naszego pliku. Będziemy wtedy korzystać z jego funkcji bez popełniania błędów.
  2. Dołącz przestrzeń nazw std do naszego programu, aby móc korzystać z jej klas. Nie będziemy musieli wywoływać przestrzeni nazw, aby korzystać z jej klas.
  3. Utwórz strukturę o nazwie Person.
  4. Początek treści struktury Osoba.
  5. Utwórz członka struktury Person. Element ma nazwę obywatelstwo i jest typu całkowitego.
  6. Utwórz członka struktury Person. Element ma nazwę age i jest typu całkowitego.
  7. Koniec treści struktury Osoba.
  8. Utwórz funkcję, która jako argument przyjmie instancję struktury Person, p.
  9. Wywołaj funkcję główną. { oznacza początek treści funkcji main().
  10. Utwórz instancję struktury Person i nadaj jej nazwę p.
  11. Uzyskaj dostęp do zmiennej członkowskiej struktury, korzystając z instancji struktury p i przypisując jej wartość 1.
  12. Uzyskaj dostęp do zmiennej członkowskiej struktury age, korzystając z instancji struktury p i przypisując jej wartość 27.
  13. Wywołaj funkcję i przekaż jej jako argument instancję struktury Person, p.
  14. Funkcja musi zwrócić wartość po pomyślnym wykonaniu.
  15. Koniec treści funkcji main().
  16. Utwórz treść funkcji.
  17. Początek treści funkcji.
  18. Uzyskaj dostęp do wartości obywatelstwa członka struktury i wydrukuj ją na konsoli wraz z innym tekstem.
  19. Uzyskaj dostęp do wartości wieku członka struktury i wydrukuj ją na konsoli wraz z innym tekstem.
  20. Koniec ciała funkcji.

Ograniczenie A C++

Oto ograniczenia struktur:

  • Typu danych struct nie można traktować jak wbudowanych typów danych.
  • Operatory takie jak + - i inne nie mogą być używane zmienne struktury.
  • Struktury nie obsługują ukrywania danych. Dostęp do elementów struktury można uzyskać za pomocą dowolnej funkcji, niezależnie od jej zakresu.
  • Elementy statyczne nie mogą być deklarowane w treści struktury.
  • Konstruktorów nie można tworzyć wewnątrz struktury.

Podsumowanie

  • Struktura to struktura danych, w której przechowywane są elementy danych należące do różnych typów.
  • Podczas gdy tablica przechowuje elementy danych podobnego typu, struktura przechowuje elementy danych różnych typów.
  • Struktury należy używać, gdy nie oczekuje się, że elementy danych zmienią wartość.
  • Dostęp do członków struktury uzyskuje się za pomocą operatora kropki (.).
  • Musimy utworzyć instancję struktury.
  • Aby utworzyć C++ struct, używamy słowa kluczowego struct.
  • Wskaźniki wskazujące na strukturę są tworzone w podobny sposób, jak tworzone są wskaźniki wskazujące na zwykłe typy.
  • Strukturę można przekazać jako argument do funkcji w taki sam sposób, w jaki przekazuje się zwykłe funkcje.