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 |