identyfikowanej przez argument (co moż na wykorzystać w przypadku duż ych struktur!)...

Linki


» Dzieci to nie książeczki do kolorowania. Nie da siÄ™ wypeÅ‚nić ich naszymi ulubionymi kolorami.
»
³ S-Wyb¢r drukarki ³³ B-Przesuniþcie do obþoþenia ³³ N-Liczba kopii ³³ U-Wielokrotnoþþ kopii generowana przez ³³ G-Jakoþþ grafiki ³³ T-Jakoþþ...
»
Przez wiÄ™kszÄ… część nastÄ™pnego miesiÄ…ca — czyli od koÅ„ca wrzeÅ›nia, kiedy ucie- kÅ‚yÅ›my, do koÅ„ca października — moja pani wahaÅ‚a siÄ™...
»
spełnienie przez przychodzącego świeżo człowieka, w jego historyczności, posiada ono moc, która budzi, a nie moc, która obdarza, bo ta raczej zwodziłaby...
»
Opisane przez nas dążenie odwrotne — dążenie do przeÅ‚amania skorupy odrÄ™bnoÅ›ci i uwolnienia siÄ™ z wynikajÄ…cych z niej ograniczeÅ„ i izolacji — jest...
»
Tej to duszy przys³uguje istnienie, a poœrednio dopiero cia³u zorganizowanemu przez duszê,podczas gdy zwierzêtom i roœlinom istnienie przys³uguje jako jU¯...
»
zdaniami, ograniczony do związków formalnych lub uwzględniający równieŜ związki treściowe; (2) przez określenie punktu wyjścia i punktu dojścia...
»
obowi¹zuj¹cego w zakresie nie uregulowanym lub niedostatecznie uregulowanym przez prawamiejscowe, który zarazem stapia³ koncepcje prawa rzymskiego i prawa...
»
Krasnoludy ruszyły do przodu zwartą grupą, przez cały czas walcząc z ogarniającą ich rozpaczą, a Hornborin wysoko uniósł rękę z Pierścieniem i ruszył w...
»
Palec Å›rodkowy krzywo wykrÄ™ca przez handlowe Å›ródmieÅ›cie, obok sklepu Herky’s Merkentile & Pharmacy, obok dealera Hondy, u  którego piÄ™trzÄ… siÄ™ i...
»
Drugi element, który bêdzie mia³ wp³yw na polsk¹ politykê celn¹, to system preferencji handlowych, udzielanych przez Uniê Europejsk¹ krajom Afryki, Karaibów i Pacyfiku...

Dzieci to nie książeczki do kolorowania. Nie da się wypełnić ich naszymi ulubionymi kolorami.



Po dokonaniu skojarzenia, wszelkie operacje wykonywane na parametrze dotyczÄ… lokalnej zmiennej
zainicjowanej argumentem, ale operacje wykonywane za po średnictwem parametru (np. * par, par[ i] albo par-> f) dotyczą zmiennej wskazywanej przez argument. Moż e to mieć wpływ na wartość argumentu.

#include <iostream.h>

int main(void)
{
void inc(int *ptr);
int fix = 10;
cout << fix << endl; // 10
inc(&fix);
cout << fix << endl; // 11

return 0;
}

void inc(int *ptr)
{
++*ptr;
}


35
Program potwierdza, że wykonanie operacji za poś rednictwem parametru wskaźnikowego może powodować
zmianÄ™ wartoÅ› ci zmiennej wskazywanej przez skojarzony z nim argument.


Parametry tablicowe Każ dy parametr tablicowy jest niejawnie zastępowany parametrem wskaźnikowym, któ ry powstaje po
zastÄ… pieniu deklaratora vec[i] deklaratorem (* const vec).

W szczegó lności funkcja

int sum(int tab[20])
{
int sum = 0;
for(int i = 0; i < 3 ; i++)
sum += tab[i];
return sum;
}

jest niejawnie przekształcana w funkcję

int sum(int *const tab)
{
int sum = 0;
for(int i = 0; i < 3 ; i++)
sum += tab[i];
return sum;
}

Powoduje to, ż e jeśli chce się zdefiniować funkcję do sumowania tablic, nie odwołują cą się do zmiennych
globalnych, to jeden z jej argumentó w musi określać liczbę elementó w tablicy.

#include <iostream.h>

int sum(int tab[], int count)
{
int sum = 0;
for(int i = 0; i < count ; i++)
sum += tab[i];
return sum;
}

int main(void)
{
int small[] = { 10 },
large[] = { 10, 20, 30 };

cout << sum(small, 1) << endl;
cout << sum(large, 3) << endl;

return 0;
}


Parametry odnośnikowe

Z parametrem odnośnikowym moż na skojarzyć argument, któ ry jest takiego samego typu jak parametr, albo
któ ry moż na poddać niejawnej konwersji do typu parametru.

Zainicjowanie parametru polega na skopiowania odnośnika. Podobnie jak dla parametru wskaźnikowego, nie
pociÄ… ga to za sobÄ… kopiowania zmiennej identyfikowanej przez argument.

Po dokonaniu skojarzenia, wszelkie operacje wykonywane na parametrze dotyczÄ… zmiennej identyfikowanej
przez argument. Moż e to powodować zmianę wartości skojarzonego z nim argumentu.

36

#include <iostream.h>

int main(void)
{
void inc(int &ref);
int fix = 10;
cout << fix << endl; // 10
inc(fix);
cout << fix << endl; // 11

return 0;
}

void inc(int &ref)
{
++ref;
}

Program potwierdza, że wykonanie operacji za poś rednictwem parametru odnoś nikowego może powodować
zmianÄ™ wartoÅ› ci skojarzonego z nim argumentu.


Parametry funkcji main Funkcja głó wna moż e być zadeklarowana jako bezparametrowa albo dwu-parametrowa. Jeśli jest
dwuparametrowa, to jej pierwszy parametr jest typu int i ma wartość ró wną liczbie argumentó w programu
zwiększonej o 1, a drugi jest typu char *[] i jest tablicą odnośnikó w do łańcuchó w zainicjowanych nazwą
programu oraz nazwami jego argumentó w.

#include <iostream.h>

int main(int argc, char *argv[])
{
cout << "My name is: " << argv[0] << endl;
cout << "My arguments are: " << endl;
for(int i = 1; i < argc ; i++)
cout << argv[i] << endl;

return 0;
}

Program wyprowadza swoją nazwę i argumenty; każde w osobnym wierszu.


Skojarzenia powrotne W chwili zakończenia wykonywania funkcji rezultatowej (o typie ró ż nym od void) następuje skojarzenie jej
rezultatu z wyraż eniem występują cym w instrukcji powrotu. Odbywa się to według tych samych zasad co
skojarzenie parametru z argumentem i polega na zainicjowaniu rezultatu funkcji wyraż eniem występują cym w
instrukcji powrotu.

Uwaga: Rezultat funkcji jest zmiennÄ… . Typ rezultatu jest identyczny z typem funkcji. NazwÄ… rezultatu jest
wywołanie funkcji. Z punktu widzenia łą czenia operacji (np. ++*fun(1,2)+3), nazwa funkcji jest zastępowana
nazwÄ… rezultatu.

#include <iostream.h>

Powered by MyScript