Wykład (7) - Zmienna wskaźnikowa

Nasza ocena:

3
Wyświetleń: 364
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Wykład (7) - Zmienna wskaźnikowa - strona 1 Wykład (7) - Zmienna wskaźnikowa - strona 2 Wykład (7) - Zmienna wskaźnikowa - strona 3

Fragment notatki:

TYP STRUKTURALNY
Struktura



najbardziej elastyczny sposób reprezentowania danych
w języku C (odpowiednik rekordu w języku Pascal),
obiekt złoŜony z jednej lub kilku zmiennych, które mogą
być róŜnego typu (w przeciwieństwie do tablic),
budowa: układ i typy pól składowych typu strukturalnego
są definiowane przez programistę.
Definiowanie nowego typu strukturalnego:
struct nazwa_typu
← nazwa tworzonego typu strukturalnego
{
typ_pola_1 nazwa_pola_1;
typ_pola_2 nazwa_pola_2;
← typy i nazwy pól składowych
• • •
typ_pola_n nazwa_pola_n;
};
Przykład:
Kowalski
Jan
1987
173 cm
’m’
437.20zł
nazwisko
imię
rok_urodz
wzrost
płeć
stypendium
char [30]
char [15]
short
short
char
double
struct T_dane_osobowe
{
char
nazwisko[30];
char
imie[15];
short
rok_urodz, wzrost;
char
plec;
double stypendium;
};
struct T_data_kalendarzowa { int dzien, miesiac, rok; } ;
struct T_pozyczka
{
double
char
T_data_kalendarzowa
T_data_kalendarzowa
};
M.Piasecki: JĘZYKI PROGRAMOWANIA (1)
kwota;
opis[50];
data_pozyczki;
data_zwrotu;
−1−
// struktura zagnieŜdŜona
// struktura zagnieŜdŜona
(W9) Typ strukturalny
Definiowanie (tworzenie) zmiennych strukturalnych:
struct nazwa_typu_strukturalnego nazwa_tworzonej_zmiennej; // C
nazwa_typu_strukturalnego nazwa_tworzonej_zmiennej; // C++
Przykłady:
T_dane_osobowe student_1;
T_dane_osobowe student_2, student_3, nowy_student;
T_dane_osobowe grupa_studentow[ 20 ];
T_pozyczka pozyczka_dla_Tomka;
T_pozyczka moje_pozyczki[ 100 ];
MoŜna połączyć definicję zmiennej z inicjalizacją jej wartości. np.
// { nazwisko, imie, rok_urodz, wzrost, plec, stypendium }
T_dane_osobowe student_x = {”Kowalski”, ”Jan”, 1970, 175 ,‘M’, 320.00 };
// { kwota, opis , { dzien, miesiac, rok }, { dzien, miesiac, rok } }
T_pozyczka ostatnia = { 100.00, ”na obiady”, {27,11,2006}, {3,12,2006}};
MoŜna połączyć definicję typu strukturalnego z definicją zmiennych:
struct nazwa_typu
{
typ_pola_1 nazwa_pola_1;
typ_pola_2 nazwa_pola_2;
• • •
typ_pola_n nazwa_pola_n;
} nazwa_ zmiennej ;
← nazwę typu moŜna pominąć
← typy i nazwy pól składowych
← nazwa definiowanej zmiennej
Np.
struct
{
char nazwisko[30];
char imie[15];
short rok_urodz, wzrost;
char plec;
double stypendium;
} student_1, student_2;
M.Piasecki: JĘZYKI PROGRAMOWANIA (1)
// ← pominięto nazwę typu
// definicja dwóch zmiennych strukturalnych
−2−
(W9) Typ strukturalny
Odwoływanie się do elementów struktury: za pomocą operatora kropki
Przykłady:
student_1.wzrost = 180 ;
// przypisanie wartości do pola struktury
student_2.wzrost = student_1.wzrost;
pozyczka_dla_Tomka.kwota = 50.00;
pozyczka_dla_Tomka.data_zwrotu.miesiac = 12;
scanf( ”%lf” , &student.stypendium );
scanf( ”%s” , student.nazwisko );
// wczytanie pola liczbowego
// wczytanie łańcucha znaków
cin student.stypendium;
cin student.nazwisko;
strcpy( student.imie, ”Tomasz” );
// kopiowanie tekstu do pola struktury
W pierwotnej wersji języka C (Kernigham, Ritchie) jedynymi dozwolonymi
operacjami na strukturze były

(…)

… struktur w „C++”
student_2.nazwisko = student_1. nazwisko;
strcpy( student_2.nazwisko, student_1.nazwisko );
// uwaga na teksty!
// funkcja zwracająca daną strukturalną
T_dane_osobowe Wczytaj_Dane_Osobowe( void )
{
T_dane_osobowe nowe_dane;
printf( ”Podaj nazwisko: ” );
scanf( ”%s” , nowe_dane.nazwisko );
• • •
return nowe_dane ;
}
// funkcja której argumentem jest zmienna strukturalna
void…
... zobacz całą notatkę

Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz