Struktury, unie, wyliczenia oraz typedef
|
|
- Michał Duda
- 4 lat temu
- Przeglądów:
Transkrypt
1 Struktury, unie, wyliczenia oraz typedef Przemysław Gawroński D-10, p. 234 Wykład 7 12 kwietnia 2019 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
2 Outline 1 Wskaźniki do struktur 2 C99 - elastyczne składowe tablicowe 3 C99 - inicjatory desygnowane 4 C11 - struktury i unie anonimowe 5 Unie 6 Wyliczenia 7 Pola bitowe 8 typedef (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
3 Wskaźniki do struktur Ogólna postać deklaracji wskaźnika do struktury: struct etykieta *nazwa-zmiennej; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
4 Wskaźniki do struktur Ogólna postać deklaracji wskaźnika do struktury: struct etykieta *nazwa-zmiennej; Wskaźniki do struktur służą do: (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
5 Wskaźniki do struktur Ogólna postać deklaracji wskaźnika do struktury: struct etykieta *nazwa-zmiennej; Wskaźniki do struktur służą do: przekazywania struktur do funkcji przez referencję, (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
6 Wskaźniki do struktur Ogólna postać deklaracji wskaźnika do struktury: struct etykieta *nazwa-zmiennej; Wskaźniki do struktur służą do: przekazywania struktur do funkcji przez referencję, tworzenia dynamicznych struktur danych. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
7 Wskaźniki do struktur Ogólna postać deklaracji wskaźnika do struktury: struct etykieta *nazwa-zmiennej; Wskaźniki do struktur służą do: przekazywania struktur do funkcji przez referencję, tworzenia dynamicznych struktur danych. Przekazując strukturę do funkcji tworzona jest jej kopia na stosie. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
8 Wskaźniki do struktur Ogólna postać deklaracji wskaźnika do struktury: struct etykieta *nazwa-zmiennej; Wskaźniki do struktur służą do: przekazywania struktur do funkcji przez referencję, tworzenia dynamicznych struktur danych. Przekazując strukturę do funkcji tworzona jest jej kopia na stosie. Gdy funkcja otrzymuje wskaźnik do struktury tylko adres struktury umieszczany jest na stosie. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
9 Wskaźniki do struktur Ogólna postać deklaracji wskaźnika do struktury: struct etykieta *nazwa-zmiennej; Wskaźniki do struktur służą do: przekazywania struktur do funkcji przez referencję, tworzenia dynamicznych struktur danych. Przekazując strukturę do funkcji tworzona jest jej kopia na stosie. Gdy funkcja otrzymuje wskaźnik do struktury tylko adres struktury umieszczany jest na stosie. Funkcja może operować bezpośrednio na strukturze, a nie na jej kopii. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
10 Wskaźniki do struktur struct critter { const char * name ; const char * species ; }; struct critter muppets [] = { {" Kermit ", " frog "}, {" Piggy ", " pig "} }; void print_critter ( const struct critter * c){ printf ("%s, the %s\n", c->name, c-> species ); } print_critter (& muppets [0]) ; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
11 Wskaźniki do struktur int critter_cmp ( const void * c1, const void * c2){ return strcmp ( ( ( struct critter *) c1 ) - > name, ( ( struct critter *) c2 ) -> name ); } int cnt = sizeof ( muppets ) / sizeof ( struct critter ); qsort ( muppets, cnt, sizeof ( struct critter ), critter_cmp ); (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
12 Wskaźniki do struktur struct critter * find_critter ( const char * name, struct critter * muppets, int cnt ){ struct critter target ; target. name = name ; } return bsearch (& target, muppets, cnt, sizeof ( struct critter ), critter_cmp ); struct critter * result = find_critter (" Kermit ", muppets, cnt ); if( result ) print_critter ( result ); (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
13 Struktury - wyrównywanie granic struct cic { char a; // 1 int b; // 4 char c; /* 1 */ }; struct icc { int b; // 4 char a; // 1 char c; /* 1 */ }; struct cci { char a; // 1 char c; // 1 int b; /* 4 */ }; printf ("%ld\n", sizeof ( struct cic )); // 12 printf ("%ld\n", sizeof ( struct icc )); // 8 printf ("%ld\n", sizeof ( struct cci )); // 8 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
14 Struktury - wyrównywanie granic size t offsetof(type, member) - makro z nagłówka stddef.h, określa przesuniecie member w stosunku do type, gdzie type to struktura bądź unia. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
15 Struktury - wyrównywanie granic size t offsetof(type, member) - makro z nagłówka stddef.h, określa przesuniecie member w stosunku do type, gdzie type to struktura bądź unia. struct cci { char a; // 1 char b; // 1 int c; // 4 } z; // Typ int zajmuje 4 bajty i musi zaczynac sie od adresu podzielnego przez 4. printf ("%ld\n", sizeof ( struct cci )); // 8 printf ("%p %p %p\n", &z.a, &z.b, &z.c); // 0 x7fffd65214a0 0 x7fffd65214a1 0 x7fffd65214a4 printf ("a=% ld\n",offsetof ( struct cci,a));// 0 printf ("b=% ld\n",offsetof ( struct cci,b));// 1 printf ("c=% ld\n",offsetof ( struct cci,c));// 4 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
16 Struktury - wyrównywanie granic struct icc { int a; // 4 char b; // 1 char c; // 1 } y; printf ("%ld\n", sizeof ( struct icc )); // 8 printf ("%p %p %p\n", &y.a, &y.b, &y.c); // 0 x7fff09860fb0 0 x7fff09860fb4 0 x7fff09860fb5 printf ("a=% ld\n",offsetof ( struct icc,a));// 0 printf ("b=% ld\n",offsetof ( struct icc,b));// 4 printf ("c=% ld\n",offsetof ( struct icc,c));// 5 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
17 Struktury - wyrównywanie granic struct cic { char a; // 1 int b; // 4 char c; // 1 } x; printf ("%ld\n", sizeof ( struct cic )); // 12 printf ("%p %p %p\n", &x.a, &x.b, &x.c); // 0 x7fff09860fc0 0 x7fff09860fc4 0 x7fff09860fc8 printf ("a=% ld\n",offsetof ( struct cic,a));// 0 printf ("b=% ld\n",offsetof ( struct cic,b));// 4 printf ("c=% ld\n",offsetof ( struct cic,c));// 8 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
18 C99 - elastyczne składowe tablicowe Standard C99 pozwala zadeklarować tablicę o nieokreślonym rozmiarze jako ostatnią składową struktury. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
19 C99 - elastyczne składowe tablicowe Standard C99 pozwala zadeklarować tablicę o nieokreślonym rozmiarze jako ostatnią składową struktury. Struktura musi zawierać co najmniej jeden element przed elastyczna składową tablicową. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
20 C99 - elastyczne składowe tablicowe Standard C99 pozwala zadeklarować tablicę o nieokreślonym rozmiarze jako ostatnią składową struktury. Struktura musi zawierać co najmniej jeden element przed elastyczna składową tablicową. Taka składowa umożliwia umieszczenie w strukturach tablic o zmiennej długości. Rozmiar takiej struktury zwrócony przez operator sizeof nie uwzględnia pamięci przeznaczonej na taką tablicę. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
21 C99 - elastyczne składowe tablicowe Standard C99 pozwala zadeklarować tablicę o nieokreślonym rozmiarze jako ostatnią składową struktury. Struktura musi zawierać co najmniej jeden element przed elastyczna składową tablicową. Taka składowa umożliwia umieszczenie w strukturach tablic o zmiennej długości. Rozmiar takiej struktury zwrócony przez operator sizeof nie uwzględnia pamięci przeznaczonej na taką tablicę. Przykład. struct mys { int a; float fa []; }; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
22 C99 - elastyczne składowe tablicowe Standard C99 pozwala zadeklarować tablicę o nieokreślonym rozmiarze jako ostatnią składową struktury. Struktura musi zawierać co najmniej jeden element przed elastyczna składową tablicową. Taka składowa umożliwia umieszczenie w strukturach tablic o zmiennej długości. Rozmiar takiej struktury zwrócony przez operator sizeof nie uwzględnia pamięci przeznaczonej na taką tablicę. Przykład. struct mys { int a; float fa []; }; Przydział pamięci dla struktury zawierającej 10 elementową tablicę. struct mys * p = malloc ( sizeof ( struct mys ) + 10* sizeof ( float ) ); (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
23 C99 - inicjatory desygnowane Inicjatory desygnowane występują w dwóch odmianach: (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
24 C99 - inicjatory desygnowane Inicjatory desygnowane występują w dwóch odmianach: dla tablic [indeks]=val, (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
25 C99 - inicjatory desygnowane Inicjatory desygnowane występują w dwóch odmianach: dla tablic [indeks]=val, dla struktur.nazwa-składowej=val. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
26 C99 - inicjatory desygnowane Inicjatory desygnowane występują w dwóch odmianach: dla tablic [indeks]=val, dla struktur.nazwa-składowej=val. Przykład. int a [10]= {[0]=100, [3]=200}; struct strm { int a; int b; int c; } ob = {.c=30,.a =10}; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
27 C11 - struktury i unie anonimowe Struktury i unie anonimowe: struct foo { int m; struct { float x; int n; }; }; struct foo t; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
28 C11 - struktury i unie anonimowe Struktury i unie anonimowe: struct foo { int m; struct { float x; int n; }; }; struct foo t; Bezpośredni dostęp do pola struktury anonimowej: t.n = 1300; t.m = 2300 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
29 Unie Unia to obszar w pamięci, który współdzieli kilka zmiennych różnego typu. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
30 Unie Unia to obszar w pamięci, który współdzieli kilka zmiennych różnego typu. Unia umożliwia (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
31 Unie Unia to obszar w pamięci, który współdzieli kilka zmiennych różnego typu. Unia umożliwia różną interpretację tej samej wartości binarnej (nietypowe zaokrąglenia), (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
32 Unie Unia to obszar w pamięci, który współdzieli kilka zmiennych różnego typu. Unia umożliwia różną interpretację tej samej wartości binarnej (nietypowe zaokrąglenia), tworzenie złożonych typów danych, jednocześnie oszczędzając miejsce w pamięci. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
33 Unie Unia to obszar w pamięci, który współdzieli kilka zmiennych różnego typu. Unia umożliwia różną interpretację tej samej wartości binarnej (nietypowe zaokrąglenia), tworzenie złożonych typów danych, jednocześnie oszczędzając miejsce w pamięci. Ogólna postać deklaracji unii: union [ etykieta ]{ typ pole_unii ; }[ lista - zmiennych ]; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
34 Unie Unia to obszar w pamięci, który współdzieli kilka zmiennych różnego typu. Unia umożliwia różną interpretację tej samej wartości binarnej (nietypowe zaokrąglenia), tworzenie złożonych typów danych, jednocześnie oszczędzając miejsce w pamięci. Ogólna postać deklaracji unii: union [ etykieta ]{ typ pole_unii ; }[ lista - zmiennych ]; union u_ type { int i; //4 bajty - int. char ch; // 1 bajt - char. } u; // cala unia zajmuje TYLKO 4 bajty. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
35 Unie Unia to obszar w pamięci, który współdzieli kilka zmiennych różnego typu. Unia umożliwia różną interpretację tej samej wartości binarnej (nietypowe zaokrąglenia), tworzenie złożonych typów danych, jednocześnie oszczędzając miejsce w pamięci. Ogólna postać deklaracji unii: union [ etykieta ]{ typ pole_unii ; }[ lista - zmiennych ]; union u_ type { int i; //4 bajty - int. char ch; // 1 bajt - char. } u; // cala unia zajmuje TYLKO 4 bajty. Dostęp do składowych unii umożliwiają operatory kropka i strzałka. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
36 Unie - 1/sqrt(x) Szybka odwrotność pierwiastka kwadratowego z 32-bitowej liczby zmiennoprzecinkowej w standardzie IEEE 754. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
37 Unie - 1/sqrt(x) Szybka odwrotność pierwiastka kwadratowego z 32-bitowej liczby zmiennoprzecinkowej w standardzie IEEE 754. Odwrotności pierwiastków kwadratowych są używane do obliczania kątów padania i odbicia dla oświetlenia i cieniowania w grafice komputerowej. (Quake III: Arena) (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
38 Unie - 1/sqrt(x) Szybka odwrotność pierwiastka kwadratowego z 32-bitowej liczby zmiennoprzecinkowej w standardzie IEEE 754. Odwrotności pierwiastków kwadratowych są używane do obliczania kątów padania i odbicia dla oświetlenia i cieniowania w grafice komputerowej. (Quake III: Arena) Algorytm wyznacza 1 w następujących krokach: x (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
39 Unie - 1/sqrt(x) Szybka odwrotność pierwiastka kwadratowego z 32-bitowej liczby zmiennoprzecinkowej w standardzie IEEE 754. Odwrotności pierwiastków kwadratowych są używane do obliczania kątów padania i odbicia dla oświetlenia i cieniowania w grafice komputerowej. (Quake III: Arena) Algorytm wyznacza 1 w następujących krokach: x zmiennoprzecinkowy wartość x interpretowana jest jako liczba całkowita, co może być sposobem na wyznaczenie przybliżenia log 2 (x) (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
40 Unie - 1/sqrt(x) Szybka odwrotność pierwiastka kwadratowego z 32-bitowej liczby zmiennoprzecinkowej w standardzie IEEE 754. Odwrotności pierwiastków kwadratowych są używane do obliczania kątów padania i odbicia dla oświetlenia i cieniowania w grafice komputerowej. (Quake III: Arena) Algorytm wyznacza 1 w następujących krokach: x zmiennoprzecinkowy wartość x interpretowana jest jako liczba całkowita, co może być sposobem na wyznaczenie przybliżenia log 2 (x) wyliczone przybliżenie zostaje przekształcone w przybliżoną wartość log 2 ( 1 x ) = 1 2 log 2(x) (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
41 Unie - 1/sqrt(x) Szybka odwrotność pierwiastka kwadratowego z 32-bitowej liczby zmiennoprzecinkowej w standardzie IEEE 754. Odwrotności pierwiastków kwadratowych są używane do obliczania kątów padania i odbicia dla oświetlenia i cieniowania w grafice komputerowej. (Quake III: Arena) Algorytm wyznacza 1 w następujących krokach: x zmiennoprzecinkowy wartość x interpretowana jest jako liczba całkowita, co może być sposobem na wyznaczenie przybliżenia log 2 (x) wyliczone przybliżenie zostaje przekształcone w przybliżoną wartość log 2 ( 1 x ) = 1 2 log 2(x) otrzymana liczba całkowita interpretowana jest jako zmiennoprzecinkowa, co pozwala obliczyć przybliżenie funkcji wykładniczej o podstawie 2 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
42 Unie - 1/sqrt(x) Szybka odwrotność pierwiastka kwadratowego z 32-bitowej liczby zmiennoprzecinkowej w standardzie IEEE 754. Odwrotności pierwiastków kwadratowych są używane do obliczania kątów padania i odbicia dla oświetlenia i cieniowania w grafice komputerowej. (Quake III: Arena) Algorytm wyznacza 1 w następujących krokach: x zmiennoprzecinkowy wartość x interpretowana jest jako liczba całkowita, co może być sposobem na wyznaczenie przybliżenia log 2 (x) wyliczone przybliżenie zostaje przekształcone w przybliżoną wartość log 2 ( 1 x ) = 1 2 log 2(x) otrzymana liczba całkowita interpretowana jest jako zmiennoprzecinkowa, co pozwala obliczyć przybliżenie funkcji wykładniczej o podstawie 2 dokładność wyniku można zwiększyć stosując iteracje metody Newtona-Raphsona (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
43 Unie - 1/sqrt(x) # include <stdint.h> float Q_rsqrt_u ( float number ){ const float x2 = number * 0.5 F; union { float f; uint32_t i; } conv = { number }; conv.i = 0 x5f3759df - ( conv.i >> 1); conv.f *= (1.5 F - (x2 * conv.f * conv.f)); return } conv.f; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
44 Unie - mieszane typy danych # define INT_NUMBER 0 # define DOUBLE_NUMBER 1 struct number { union { double dvar ; int ivar ; } uvar ; char type ; }; struct number a,b; a. type = INT_NUMBER ; a. uvar. ivar =57; b. type = DOUBLE_NUMBER ; b. uvar. dvar =12.34; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
45 Unie - mieszane typy danych void print_number ( struct number tmp ){ } if ( tmp. type == INT_NUMBER ) printf (" int = %d\n", tmp. uvar. ivar ); else printf (" double = %lf\n", tmp. uvar. dvar ); print_number (a); print_number (b); (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
46 Wyliczenia Wyliczenie to zbiór stałych całkowitych o określonych nazwach. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
47 Wyliczenia Wyliczenie to zbiór stałych całkowitych o określonych nazwach. Ogólna postać wyliczenia: enum [ etykieta ] { lista wartosci } [ zmienne ]; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
48 Wyliczenia Wyliczenie to zbiór stałych całkowitych o określonych nazwach. Ogólna postać wyliczenia: enum [ etykieta ] { lista wartosci } [ zmienne ]; Przykład: enum moneta { penny, nickel, dime, quarter, half_ dolar, dolar }; enum moneta x;... x = dime ; if (x == quarter )... (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
49 Wyliczenia Każdy symbol wyliczenia reprezentuje stałą całkowitą. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
50 Wyliczenia Każdy symbol wyliczenia reprezentuje stałą całkowitą. Wyliczeń można używać tam gdzie można użyć liczby całkowitej. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
51 Wyliczenia Każdy symbol wyliczenia reprezentuje stałą całkowitą. Wyliczeń można używać tam gdzie można użyć liczby całkowitej. Każdy symbol otrzymuje wartość o jeden większą od wartości poprzedniego symbolu. Wartość pierwszego symbolu to zero. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
52 Wyliczenia Każdy symbol wyliczenia reprezentuje stałą całkowitą. Wyliczeń można używać tam gdzie można użyć liczby całkowitej. Każdy symbol otrzymuje wartość o jeden większą od wartości poprzedniego symbolu. Wartość pierwszego symbolu to zero. Można również określić wartości jednego lub kilku symboli. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
53 Wyliczenia Każdy symbol wyliczenia reprezentuje stałą całkowitą. Wyliczeń można używać tam gdzie można użyć liczby całkowitej. Każdy symbol otrzymuje wartość o jeden większą od wartości poprzedniego symbolu. Wartość pierwszego symbolu to zero. Można również określić wartości jednego lub kilku symboli. Przykłady: enum mnta { penny = 1, nickel = 2, dime = 3, quarter = 4, half_dolar = 5, dolar = 6}; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
54 Wyliczenia Każdy symbol wyliczenia reprezentuje stałą całkowitą. Wyliczeń można używać tam gdzie można użyć liczby całkowitej. Każdy symbol otrzymuje wartość o jeden większą od wartości poprzedniego symbolu. Wartość pierwszego symbolu to zero. Można również określić wartości jednego lub kilku symboli. Przykłady: enum mnta { penny = 1, nickel = 2, dime = 3, quarter = 4, half_dolar = 5, dolar = 6}; enum mntb { penny = 11, nickel = 22, dime = 13, quarter = 4, half_ dolar = 15, dolar = 66}; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
55 Wyliczenia Każdy symbol wyliczenia reprezentuje stałą całkowitą. Wyliczeń można używać tam gdzie można użyć liczby całkowitej. Każdy symbol otrzymuje wartość o jeden większą od wartości poprzedniego symbolu. Wartość pierwszego symbolu to zero. Można również określić wartości jednego lub kilku symboli. Przykłady: enum mnta { penny = 1, nickel = 2, dime = 3, quarter = 4, half_dolar = 5, dolar = 6}; enum mntb { penny = 11, nickel = 22, dime = 13, quarter = 4, half_ dolar = 15, dolar = 66}; enum mntc { penny, nickel = 7, dime, quarter, half_ dolar, dolar = 15}; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
56 Wyliczenia Przykład: int i; enum { CLUBS, DIAMONDS, HEARTS, SPADES } s; i = DIAMONDS ; // i = 1 s = 0; // s = 0 CLUBS s ++; // s = 1 DIAMONDS i = s + 2; // i = 3 (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
57 Unie + Wyliczenia = mieszane typy danych struct number { enum { INT_ NUMBER, DOUBLE_ NUMBER } type ; union { double dvar ; int ivar ; } uvar ; }; struct number number_ tab [ 10]; number_tab [i]. type = INT_NUMBER ; number_tab [i]. uvar. ivar = rand () %125; number_tab [i]. type = DOUBLE_NUMBER ; number_tab [i]. uvar. dvar =( double ) rand ()/ RAND_MAX ; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
58 Unie + Wyliczenia = mieszane typy danych enum e_typ {BOOK, MUG }; enum e_typ {BOOK, MUG }; struct sctm { int nmbr ; double prc ; enum e_ typ type ; }; struct { char title [45]; char author [25]; int num_pages ; } book ; struct { char design [35]; } mug ; struct ctm { int nmbr ; double prc ; enum e_ typ type ; union { struct { char title [45]; char author [25]; int num_pages ; } book ; struct { char design [35]; } mug ; } item ; }; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
59 Unie + Wyliczenia = mieszane typy danych printf (" sizeof struct ctm = %lu\n", sizeof ( struct ctm )); // 96 printf (" sizeof struct sctm = %lu\n", sizeof ( struct sctm )); // 136 struct ctm rtcl [ 10]; rtcl [0]. type = BOOK ; rtcl [0]. prc = 25.99; strcpy ( rtcl [0]. item. book. title," Pantaleon y las visitadoras "); strcpy ( rtcl [0]. item. book. author," Vargas Llosa "); rtcl [1]. type = MUG ; rtcl [1]. prc = 5.99; strcpy ( rtcl [1]. item. mug. design,"in on the Kill Taker "); (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
60 Pola bitowe Język C pozwala odwoływać się do konkretnych bitów za pośrednictwem pól bitowych. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
61 Pola bitowe Język C pozwala odwoływać się do konkretnych bitów za pośrednictwem pól bitowych. Pola bitowe pozwalają w jednym bajcie przechować kilka zmiennych logicznych. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
62 Pola bitowe Język C pozwala odwoływać się do konkretnych bitów za pośrednictwem pól bitowych. Pola bitowe pozwalają w jednym bajcie przechować kilka zmiennych logicznych. Pola bitowe to specjalny typ składowych struktury lub unii o długości określonej w bitach. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
63 Pola bitowe Język C pozwala odwoływać się do konkretnych bitów za pośrednictwem pól bitowych. Pola bitowe pozwalają w jednym bajcie przechować kilka zmiennych logicznych. Pola bitowe to specjalny typ składowych struktury lub unii o długości określonej w bitach. Ogólna postać definicji pola bitowego: typ nazwa : długość; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
64 Pola bitowe Język C pozwala odwoływać się do konkretnych bitów za pośrednictwem pól bitowych. Pola bitowe pozwalają w jednym bajcie przechować kilka zmiennych logicznych. Pola bitowe to specjalny typ składowych struktury lub unii o długości określonej w bitach. Ogólna postać definicji pola bitowego: typ nazwa : długość; typ to int, signed, unsigned. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
65 Pola bitowe Język C pozwala odwoływać się do konkretnych bitów za pośrednictwem pól bitowych. Pola bitowe pozwalają w jednym bajcie przechować kilka zmiennych logicznych. Pola bitowe to specjalny typ składowych struktury lub unii o długości określonej w bitach. Ogólna postać definicji pola bitowego: typ nazwa : długość; typ to int, signed, unsigned. długość to liczba bitów. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
66 Pola bitowe Z pól bitowych często korzysta się przy analizowaniu danych pochodzących z urządzeń zewnętrznych. Port statusu karty szeregowej - 1 bajt: struct status_type { unsigned int delta_cts :1; unsigned int delta_dsr :1; unsigned int tr_edge :1; unsigned int delta_rec :1; unsigned int cts :1; unsigned int dsr :1; unsigned int ring :1; unsigned int rec_line :1; } status ; status = get_port_status (); status. ring = 0; if ( status. cts ) printf (" clear to send "); (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
67 Pola bitowe Można jednocześnie umieszczać w strukturze zwykłe elementy oraz pola bitowe. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
68 Pola bitowe Można jednocześnie umieszczać w strukturze zwykłe elementy oraz pola bitowe. Można pominąć nieużywane bity: struct status_type { unsigned int : 4; // pomijamy nieuzywane unsigned int cts : 1; // interesuja nas unsigned int dsr : 1; // tylko bity 5 i 6 } status ; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
69 Pola bitowe Nie można pobrać adresu pola bitowego. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
70 Pola bitowe Nie można pobrać adresu pola bitowego. Nie można tworzyć tablic pól bitowych. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
71 Pola bitowe Nie można pobrać adresu pola bitowego. Nie można tworzyć tablic pól bitowych. Pól bitowych nie można deklarować jako statycznych. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
72 Pola bitowe Nie można pobrać adresu pola bitowego. Nie można tworzyć tablic pól bitowych. Pól bitowych nie można deklarować jako statycznych. Korzystanie z pól bitowych wiąże kod z konkretnym typem komputera; nie wiadomo czy pola bitowe układają się od lewej do prawej czy też odwrotnie. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
73 Pola bitowe Nie można pobrać adresu pola bitowego. Nie można tworzyć tablic pól bitowych. Pól bitowych nie można deklarować jako statycznych. Korzystanie z pól bitowych wiąże kod z konkretnym typem komputera; nie wiadomo czy pola bitowe układają się od lewej do prawej czy też odwrotnie. Kod operujący na polach bitowych jest zazwyczaj dużo jaśniejszy niż odpowiadające mu jawne operacje na maskach bitowych. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
74 Maski bitowe unsigned short int - 16 bitów, najbardziej znaczący bit to 15, a najmniej znaczący bit to 0. unsigned short int i = 0 x0000 ; // (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
75 Maski bitowe unsigned short int - 16 bitów, najbardziej znaczący bit to 15, a najmniej znaczący bit to 0. unsigned short int i = 0 x0000 ; // Ustawianie bitu - ustawianie 4 bitu przy pomocy maski bitowej. i = 0 x0010 ; // (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
76 Maski bitowe unsigned short int - 16 bitów, najbardziej znaczący bit to 15, a najmniej znaczący bit to 0. unsigned short int i = 0 x0000 ; // Ustawianie bitu - ustawianie 4 bitu przy pomocy maski bitowej. i = 0 x0010 ; // i = 0 x0000 ; i = 1 << 4; // (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
77 Maski bitowe Kasowanie bitu - kasowanie 4 bitu przy pomocy maski bitowej. i = 0 x00ff ; // i &= ~0 x0010 ; // (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
78 Maski bitowe Kasowanie bitu - kasowanie 4 bitu przy pomocy maski bitowej. i = 0 x00ff ; // i &= ~0 x0010 ; // i = 0 x00ff ; // i &= ~(1 << 4); // (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
79 Maski bitowe Kasowanie bitu - kasowanie 4 bitu przy pomocy maski bitowej. i = 0 x00ff ; // i &= ~0 x0010 ; // i = 0 x00ff ; // i &= ~(1 << 4); // Testowanie bitu - sprawdzanie czy 4 bit jest ustawiony. if ( i & 0 x0010 )... (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
80 Maski bitowe Kasowanie bitu - kasowanie 4 bitu przy pomocy maski bitowej. i = 0 x00ff ; // i &= ~0 x0010 ; // i = 0 x00ff ; // i &= ~(1 << 4); // Testowanie bitu - sprawdzanie czy 4 bit jest ustawiony. if ( i & 0 x0010 )... if ( i & 1 << 4)... (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
81 Maski bitowe # define BLUE 1 // bit 0 # define GREEN 2 // bit 1 # define RED 4 // bit 2 i = BLUE ; // ustawiamy bit BLUE i &= ~ BLUE ; // kasujemy bit BLUE if (i & BLUE )... // sprawdzamy bit BLUE i = BLUE GREEN ; // ustawiamy bity BLUE i GREEN i &= ~( BLUE GREEN ); // kasujemy bity BLUE i GREEN if (i & ( BLUE GREEN ))... // sprawdzamy czy bit BLUE lub GREEN jest ustawiony (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
82 typedef Używając słowa kluczowego typedef można zdefiniować nowe nazwy typów. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
83 typedef Używając słowa kluczowego typedef można zdefiniować nowe nazwy typów. Ogólna postać instrukcji: typedef typ nowa_nazwa_typu ; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
84 typedef Używając słowa kluczowego typedef można zdefiniować nowe nazwy typów. Ogólna postać instrukcji: typedef typ nowa_nazwa_typu ; Przykład: typedef float saldo ; saldo wrzesien ; typedef struct telement { int wiek ; struct telement * nast ; } element ; element * root ; // struct telement * root ; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
85 typedef Rozważmy poniższą deklarację: int *(* x [10]) ( void ); (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
86 typedef Rozważmy poniższą deklarację: int *(* x [10]) ( void ); Deklarator, który zaczyna się od oznacza wskaźnik. Deklarator, który kończy się [] oznacza tablicę. Deklarator, który kończy się () oznacza funkcję. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
87 typedef Rozważmy poniższą deklarację: int *(* x [10]) ( void ); Deklarator, który zaczyna się od oznacza wskaźnik. Deklarator, który kończy się [] oznacza tablicę. Deklarator, który kończy się () oznacza funkcję. Deklaracje odczytujemy od środka. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
88 typedef Rozważmy poniższą deklarację: int *(* x [10]) ( void ); Deklarator, który zaczyna się od oznacza wskaźnik. Deklarator, który kończy się [] oznacza tablicę. Deklarator, który kończy się () oznacza funkcję. Deklaracje odczytujemy od środka. Jeżeli poprzedza identyfikator a [] następuje po nim, to identyfikator reprezentuje tablicę. Jeżeli poprzedza identyfikator a () następuje po nim, to identyfikator reprezentuje funkcję. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
89 typedef Rozważmy poniższą deklarację: int *(* x [10]) ( void ); Deklarator, który zaczyna się od oznacza wskaźnik. Deklarator, który kończy się [] oznacza tablicę. Deklarator, który kończy się () oznacza funkcję. Deklaracje odczytujemy od środka. Jeżeli poprzedza identyfikator a [] następuje po nim, to identyfikator reprezentuje tablicę. Jeżeli poprzedza identyfikator a () następuje po nim, to identyfikator reprezentuje funkcję. Możemy użyć nawiasów by zmienić priorytet [] oraz () nad. (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
90 typedef Rozważmy poniższą deklarację: int *(* x [10]) ( void ); Deklarator, który zaczyna się od oznacza wskaźnik. Deklarator, który kończy się [] oznacza tablicę. Deklarator, który kończy się () oznacza funkcję. Deklaracje odczytujemy od środka. Jeżeli poprzedza identyfikator a [] następuje po nim, to identyfikator reprezentuje tablicę. Jeżeli poprzedza identyfikator a () następuje po nim, to identyfikator reprezentuje funkcję. Możemy użyć nawiasów by zmienić priorytet [] oraz () nad. Deklaracja z wykorzystaniem typedef typedef int * Fcn ( void ); typedef Fcn * Fcn_ ptr ; typedef Fcn_ ptr Fcn_ ptr_ array [ 10]; Fcn_ptr_array x; (Wykład 7) Struktury, unie, wyliczenia oraz typedef 12 kwietnia / 33
Struktury - wprowadzenie
Struktury - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 6 5 kwietnia 2019 (Wykład 6) Struktury - wprowadzenie 5 kwietnia 2019 1 / 12 Outline 1 Struktury (Wykład 6) Struktury - wprowadzenie 5
Bardziej szczegółowoTypy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Bardziej szczegółowoDr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowowykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,
, Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer
Bardziej szczegółowoJęzyk C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Bardziej szczegółowoPodstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,
Bardziej szczegółowoKURS C/C++ WYKŁAD 7. struct Punkt { int x, y; int kolor; };
Typy pochodne. Referencje Referencja jest inną nazwą zmiennej. KURS C/C++ WYKŁAD 7 Referencje tworzymy przy pomocy unarnego operatora &: int a; int &refer = a; // referencja musi być inicjowana Powyższe
Bardziej szczegółowoOperatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1
Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne
Bardziej szczegółowoWstęp do programowania 1
Wstęp do programowania 1 Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Struktura dla dat - przykład #include struct Date { int y; short m; short
Bardziej szczegółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Bardziej szczegółowoPodstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Bardziej szczegółowo/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Bardziej szczegółowoInstrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.
Bardziej szczegółowoTablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Bardziej szczegółowoKURS C/C++ WYKŁAD 6. Wskaźniki
Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można
Bardziej szczegółowoAlgorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
Bardziej szczegółowoRóżności w C++ Marek Pudełko
Różności w C++ Marek Pudełko Kodowanie i reprezentacja liczb 2 Kodowanie uzupełnieniowe U1 i U2 Bity liczby numerujemy od 0 do k 1 Bitom nr j, j < k 1 przyporządkowuje się wagi w j =2 j Najstarszej pozycji
Bardziej szczegółowoWskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoStrona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót
Bardziej szczegółowoTemat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Bardziej szczegółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoexternal Data Representation
Remote Procedure Call external Data Representation Opis standardu RFC 1014 Kanoniczna reprezentacja danych oparta na formacie IEEE Deklaratywny język opisu struktur danych (zbliżony do języka C) Koncepcja
Bardziej szczegółowoStruktury czyli rekordy w C/C++
Struktury czyli rekordy w C/C++ Wprowadzenie do programowania w języku C struktury. pola bitowe, unie Struktury (rekordy) są złożonymi zmiennymi, składającymi się z elementów różnych typów zwanych polami,
Bardziej szczegółowoLab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,
Bardziej szczegółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoWYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5
WYKŁAD 10 Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5 Tomasz Zieliński ZMIENNE O ZŁOŻONEJ BUDOWIE (1) Zmienne
Bardziej szczegółowoWykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Bardziej szczegółowoProgram w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:
Program w C wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2015-05-02 18:28:29 +0200 Tak wygląda program w języku C 1 / Hello World in C, Ansi s t y l e / 2 #include < s t d i o. h> 3 i n t main ( void
Bardziej szczegółowoTABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;
Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst
Bardziej szczegółowoProgram w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:
Program w C wer. 12 z drobnymi modyfikacjami! Wojciech Myszka 2018-06-29 14:59:06 +0200 Tak wygląda program w języku C 1 /* H e l l o World i n C, Ansi s t y l e */ 2 # i n c l u d e < s t d i o. h> 3
Bardziej szczegółowoWskaźniki. Programowanie Proceduralne 1
Wskaźniki Programowanie Proceduralne 1 Adresy zmiennych Sterta 1 #include 2 3 int a = 2 ; 4 5 int main ( ) 6 { 7 int b = 3 ; 8 9 printf ( " adres zmiennej a %p\n", &a ) ; 10 printf ( " adres
Bardziej szczegółowoStruktury Struktura polami struct struct struct struct
Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli
Bardziej szczegółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 1
Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,
Bardziej szczegółowoOperatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:
Operatory logiczne Komputery i ich logika AND - && Podstawy programowania w C++ Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com
Bardziej szczegółowoPascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Bardziej szczegółowoProgramowanie Proceduralne
Programowanie Proceduralne Unie, typdef, opeartory bitowe, operator przecinkowy Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Definicja Unia (ang. union) jest typem,
Bardziej szczegółowoSun RPC/XDR. Dariusz Wawrzyniak 1
Remote Procedure Call external Data Representation trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej stosu TCP/IP (TCP
Bardziej szczegółowoWskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Tablice Wskaźniki Adresy pamięci Operator adresu
Bardziej szczegółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
Bardziej szczegółowoSun RPC/XDR 10. listopada Dariusz Wawrzyniak (IIPP) 1
Remote Procedure Call external Data Representation trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej stosu TCP/IP (TCP
Bardziej szczegółowoexternal Data Representation
Remote Procedure Call external Data Representation Dariusz Wawrzyniak (IIPP) 1 trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej
Bardziej szczegółowoSzablony. Szablony funkcji
Szablony Szablony sa mechanizmem ponownego wykorzystania kodu (reuse) W przypadku funkcji ponownie wykorzystany jest algorytm W przypadku klas ponownie wykorzystane sa wszystkie skladowe Deklaracja szablonu
Bardziej szczegółowoStruktury, unie, formatowanie, wskaźniki
Struktury, unie, formatowanie, wskaźniki 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12, na rzecz swoich 143209 poddanych uchwalił dekret o 20 procentowej
Bardziej szczegółowo6 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 6 1/5 Język C Instrukcja laboratoryjna Temat: Wskaźniki. 6 Przygotował: mgr inż. Maciej Lasota 1) Wskaźniki. Wskaźniki (zmienne wskaźnikowe) stanowią jedno z fundamentalnych pojęć języka
Bardziej szczegółowoUzupełnienie dot. przekazywania argumentów
Uzupełnienie dot. przekazywania argumentów #include #include struct nowa { int f; char line[20000]; int k; } reprezentant; int main() { void funkcja7( struct nowa x); reprezentant.k=17;
Bardziej szczegółowoWskaźniki w C. Anna Gogolińska
Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik
Bardziej szczegółowoPodstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoJęzyki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Bardziej szczegółowoProgramowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Bardziej szczegółowoJęzyki i metodyka programowania. Wskaźniki i tablice.
Wskaźniki i tablice. Zmienna1 Zmienna2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Zmienna to fragment pamięci o określonym rozmiarze identyfikowany za pomocą nazwy, w którym może być przechowywana
Bardziej szczegółowotyp y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury
typy złożone- tablice wielowymiarowe, struktury Wykład 6 Deklarowanie wskaźników nazwa_typu * nazwa_wskaznika; WSKAŹNIKI: PRZYPOMNIENIE Przypisywanie wskaźnikom wartości double * pn = &zmienna_typu_double;
Bardziej szczegółowoStruktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Bardziej szczegółowoProgramowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory
Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Pętla while Pętla while Pętla
Bardziej szczegółowoJęzyki programowania - podstawy
Języki programowania - podstawy Andrzej Dudek Wydział Techniczno Informatyczny W Jeleniej Górze Dudek A. Informatyka przemysłowa tendencje i wyzwania 26.10.2015 1 /24 Algorytm określony sposób rozwiązania
Bardziej szczegółowoMATERIAŁY DO ZAJĘĆ II
MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Bardziej szczegółowoFunctionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ
w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L
Bardziej szczegółowoPodstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/
Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura
Bardziej szczegółowoPodstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia Krzysztof Banaś Podstawy programowania 1 Programowanie Programowanie typowe kroki zapis kodu źródłowego w pliku tekstowym kompilacja usuwanie
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoFunkcja (podprogram) void
Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji
Bardziej szczegółowoPodstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowoProgramowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer
Bardziej szczegółowonowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof
nowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof 1 adres zmiennej Do pobrania adresu zmiennej używa się jednoargumentowego operatora & (uwaga & może mieć także znaczenie dwuargumentowego
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
Bardziej szczegółowoczęść 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia
Język ANSI C część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia najbardziej podstawowe operacje na wskaźnikach int x = 1, y = 2, Tab[10]; int *ip; // czy
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoTablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Bardziej szczegółowoTypy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11
Typy danych Przemysław Gawroński D-10, p. 234 Wykład 1 25 lutego 2019 (Wykład 1) Typy danych 25 lutego 2019 1 / 11 Outline 1 Literatura 2 Programowanie proceduralne 3 Podstawowe typy danych (Wykład 1)
Bardziej szczegółowowykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Bardziej szczegółowoProgramowanie Proceduralne
Programowanie Proceduralne Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Co dziś będzie: Definiowanie struktury Deklarowanie zmiennych bȩda cych strukturami
Bardziej szczegółowotablica: dane_liczbowe
TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica
Bardziej szczegółowoJęzyki i paradygmaty programowania
Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 8/9 Wykład nr 4 (.3.9) Rok akademicki 8/9, Wykład nr 4 /33 Plan wykładu
Bardziej szczegółowoKonwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,
Bardziej szczegółowoWstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Bardziej szczegółowoBiblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoTypy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Typy wyliczeniowe Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Służą do łatwiejszej kontroli nad stałymi Ustawianie parametrów o ściśle określonym zbiorze wartości
Bardziej szczegółowoCo to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
Bardziej szczegółowoLaboratorium 5: Tablice. Wyszukiwanie binarne
Wojciech Myszka Laboratorium 5: Tablice. Wyszukiwanie binarne 2016-05-07 09:02:17 +0200 1. Tablice Do tej pory nie było potrzeby odwoływać się do zmiennych złożonych. Programy były bardzo proste i korzystały
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoWykład 7 Abstrakcyjne typy danych słownik (lista symboli)
Wykład 7 Abstrakcyjne typy danych słownik (lista symboli) Definicja słownika: Słownik (tablica lub lista symboli) to struktura danych zawierająca elementy z kluczami, która pozwala na przeprowadzanie dwóch
Bardziej szczegółowoPodstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze
Podstawy Informatyki Metalurgia, I rok Wykład 3 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 1948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych
Bardziej szczegółowoStałe, tablice dynamiczne i wielowymiarowe
Stałe, tablice dynamiczne i wielowymiarowe tylko do odczytu STAŁE - CONST tablice: const int dni_miesiaca[12]=31,28,31,30,31,30,31,31,30,31,30,31; const słowo kluczowe const sprawia, że wartość zmiennej
Bardziej szczegółowoC++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
Bardziej szczegółowo// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.
Wykład 10 Przykłady różnych funkcji (cd) - przetwarzanie tablicy tablic (tablicy "dwuwymiarowej") - sortowanie przez "selekcję" Dynamiczna alokacja pamięci 1 // Liczy srednie w wierszach i kolumnach tablicy
Bardziej szczegółowoStałe i zmienne znakowe. Stała znakowa: znak
Stałe i zmienne znakowe. Stała znakowa: znak Na przykład: a, 1, 0 c Każdy znak jest reprezentowany w pamięci przez swój kod. Kody alfanumerycznych znaków ASCII to liczby z przedziału [32, 127]. Liczby
Bardziej szczegółowoWskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Podział kodu programu Struktury definiowanie struktur
Bardziej szczegółowoPodstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych
Bardziej szczegółowo