Struktura(rekord w delphi) *************************** struct -tag { typ nazwa1; typ nazwa2; .... .... }zmienna1,zmienna2... ; *************************** typedef ..... nazwatypu; ************************** np. struct _point{ int x; int y; }p1,p1,... ; (trzeba zawsze pisac "struct") struct _point p1,p2.... ; typedef struct{ int x; int y; }Point; Point p1,p2... ; ***************************** sizeof(typ) - zwraca rozmiar typu,struktury ******************************* Unie - mozna uzywac typedef lub z tagiem. struct _variant{ int typ; union{ int intvalue; double doublevalue; } } ************************ struct path{ int length; struct{ int x,y,z; } }points[] len x y z x y z sciezka={2,{{1,2,3},{3,4,5}}}; Mozna tak deklarowac ************************** Wskazniki typ *wskaznik,zmienna; wskaznik=&zmienna przypisanie adresu do zmiennej wskaznikowej *wskaznik=wartosc <==> zmienna=wartosc mozna przypisac wartosc do wskaznika ktory pokazuje na zmienna przyklad: int a,b,c; zmienne deklarowane obok siebie sa obok siebie w pamieci, przy czym pierwsza jest c int *d; d=&c; wskaznik d ma adres zmiennej c *(d+=2)=5; <==> a=5 Jezeli mamy tablice, dwa wskazniki mozemy porownac bo komorki sa obok siebie np *a>*b porownanie odleglosci miedzy a i b w pamieci zeby policzyc odleglosc mozna odjac wskazniki od siebie, wynik to liczba typow ktore sie zmiesza miedzy nimi (dla integer jest to liczba elementow typu integer ktore sie zmieszcza miedzy nimi) wskaznik pusty *d=NULL(ewentualnie 0); ************************************** Tablice typ nazwa[pojemnosc]; mozna zainicjowac od razu indeksowanie od 0 np char lancuch[]="Ala ma kota"; dodawany jest znak pusty char lancuch[]={'A','L',...,'\0'} dodajemy 0 recznie char *wskaznik=lancuch; czyli lancuch==&lancuch[0]; *(lancuch+5)=lancuch[5];