mOlaa Temat założony przez niniejszego użytkownika |
Wywołanie funkcji + poboczna dyskusja o referencji » 2012-09-23 20:00:07 Przypuśćmy, że w programie mamy następujące deklaracje:
double a, b, c; int i, j, k; double oblicz(double *x, double y, int z);
Które, z podanych wywołań funkcji oblicz() są poprawne i dlaczego? a. oblicz=3+oblicz(b, 4.6, i); (tak?) b. cout<<sqrt(oblicz(&a, b+5, k)); (tak?) c. i=oblicz(7.15, b, oblicz(c,a,8)); (nie?) d. cout<<oblicz(&c, 0.2*b, 7.0); (nie?) e. oblicz(c, a-2, j)=14; (nie?) f. c=9-oblicz(&b, a, j+2); (tak?)
Bardzo proszę o pomoc, czy moje myślenie (odpowiedzi w nawiasach okrągłych) jest poprawne. Jutro mam sprawdzian z programowania i nie potrafię zrozumieć różnicy między wskaźnikiem i referencją.
|
|
cyklopek11 |
» 2012-09-23 22:12:15 a. Nie Błąd 1. Nie można przypisać funkcji oblicz niczego, to nie jest "l-wartość" Błąd 2. oblicz(b, 4.6, i); nie pasuje pierwszy parametr, nie można żadną konwersją przekonwertować typu double na adres do typu double.
b. Tak Pod warunkiem, że oblicz(&a, b+5, k) nie zwróci liczby ujemnej! c. Nie Błąd 1. Stałej 7.15 nie można przekonwertować na adres do double Błąd 2. w oblicz(7.15, b, oblicz(c,a,8)), oblicz(c,a,8) nie można przekonwertować typu double (c) na adres do typu double
d.Tak e. Nie Błąd 1. oblicz(c, a-2, j)=14 nie można przypisać, wartość zwracana nie jest "l-wartością" Błąd 2. w oblicz(c, a-2, j) nie można przekonwertować typu double (c) na adres do typu double f. Tak
Oczywiście odpowiedzi są poprawne jeśli do zmiennych: a, b, c, i, j, k przed wywołaniem funkcji oblicz coś sensownego zostało przypisane. |
|
yoogi |
» 2012-09-23 22:14:02 Wskaźnik to wskaźnik, zawsze ma 4 bajty pod systemami 32 bitowymi. Referencja występuje tylko w argumentach funkcji |
|
DejaVu |
» 2012-09-23 22:26:24 Referencja występuje tylko w argumentach funkcji
|
Nieprawda. |
|
yoogi |
» 2012-09-23 22:49:18 Dobra to jeszcze w metodach i konstruktorach :) |
|
DejaVu |
» 2012-09-23 23:20:10 Dobra to jeszcze w metodach i konstruktorach :)
|
To również nie jest wyczerpująca lista. |
|
yoogi |
» 2012-09-23 23:23:08 eeeee ? A wyczerpująca będzie taka, że referencja jest "bezpieczna" a wskaźnik nie :) |
|
DejaVu |
» 2012-09-23 23:24:35 ... zmienne też mogą być tworzone przez referencję... |
|
« 1 » 2 3 |