typy i zmienne funkcje, Ebooks, Informatyka, języki i metody programowania C2
[ Pobierz całość w formacie PDF ]
Typy i zmienne: wskaźnikowe, referencyjne Funkcje – deklaracja, definicja. Zasięg deklaracji i widoczność zmiennych Przekazywanie parametrów przez wartość, referencje i wskaźnik Przekazywanie wyniku funkcji przez return Typy i zmienne wskaźnikowe typ * nazwa_wkaźnika Wskaźnik Typ wskaźnika Zmienna Inicjowa-nie zmiennej wskaźni-kowej Zmienna wskazy-wana Typ zmiennej wskazy-wanej char* a; a – wskaźnik na znak char a_; a = &a_; *a = ’A’; lub a_ = ’A’; char - znakowy int* b; b – wskaźnik do liczby całkowitej int b_; b =&b_; *b = 3; lub b_ = 3; int – całkowity double* c; c – wskaźnik do liczby rzeczywistej double c_; c = &c_; *c = 2.8; lub c_ = 2.8; double – zmienno-przecinkowy char * d; d – wskaźnik na znak char w [10]; d=w; cout<<d[1]; cout<<*(d+1) char znak Typy i zmienne referencyjne Typ & nazwa_zmiennej_refrencyjnej = nazwa_zmiennej; · Zmienna referencyjna jest to zmienna tożsama z inną zmienną np.: int zmienna_1; int& ref_zmienna_1 = zmienna_1; Zmienna zmienna_1 jest dostępna pod dwiema nazwami: zmienna_1 oraz ref_zmienna_1. · Referencja do stałej const int & ref_stała = 1; Zmienna ref_stała ma dostęp do wartości 1 umieszczonej w zmiennej tymczasowej. · Nie ma takich zmiennych referencyjnych: referencji do referencji np. float && a; wskaźników zmiennych referencyjnych np. int & * wskaz_ref; tablic referencji np. int & tab[10]; Funkcje, deklaracje, definicje deklaracja fukcji = prototyp funkcji
void fun (int , long& , const float& );
void main () { int i = 1; long j = 1; float k = 3; // wywołanie funkcji fun(i, j, k); /* wartość zmiennej i oraz k nie ulegnie zmianie po wykonaniu funkcji fun, natomiast wartość zmiennej j zmieni się i będzie równa 2*/ //wywołanie funkcji fun(j, i, k); /* Niebiepieczeństwo! - zmienna i typu int podstawiona pod parametr ref przekazywany jako parametr long przez referencję nie ulegnie zmianie, gdyż operacja została wykonana na zmiennej tymczasowej typu long (w Visual C++ - błąd)*/ } //definicja funkcji Nagłówek funkcji
Parametry funkcji (...) Nazwa funkcji Wynik funkcji Ciało funkcji {...}
void fun (int wart, long& ref, const float& st)
{ wart++; /*podczas wywołania funkcji f, wart++ zwiększa na stosie lokalną kopię pierwszego argumentu aktualnego - przekazywanie przez wartość*/ ref++; /*ref++ zwiększa wartość parametru aktualnego za pośrednictwem adresowania pośredniego - przekazywanie przez referencję polega na umieszczaniu adresu parametru aktualnego na stosie*/ cout << st <<’\n’; /*zmienna st przekazywana jest przez referencję, lecz nie można zmienić jej wartości*/ } Zasięg deklaracji i widoczność zmiennych Zasięgi: · Lokalny w bloku { } od miejsca definicji w bloku do końca bloku · Funkcji – dla etykiet zasięgiem jest funkcja Etykiety dla goto case default · Pliku Dla nazwy zdefiniowanej na zewnątrz wszystkich bloków funkcji zasięgiem jest cały plik od miejsca definicji do końca pliku – są to zmienne globalne Przykład
int a; //zmienna globalna
void fun(); void main() {
int a; //zmienna lokalna
a=8;
fun(); } void fun() {
a=6;
int a;
a=2;
{
int a, b;
a=9;
b=89;
}
a=20;
//b=7; tutaj wystąpi błąd – zmienna b jest niezdefiniowana } Przekazywanie parametrów do funkcji przez wartość #include <stdio.h> #include <conio.h> void f_wartosc(int, int); void main() { int a=...
[ Pobierz całość w formacie PDF ] zanotowane.pldoc.pisz.plpdf.pisz.plmement.xlx.pl
|