Zbadaj podany fragment kodu i ustal, jaką wartość uzyska zmienna x po jego wykonaniu.
#include <iostream.h> void suma (int a, int b) {a=a+b;} void main() { int a=7,b=3,x; suma(a,b); x=a+b; }
Odpowiedzi
Informacja zwrotna
Wybór odpowiedzi 10 jest poprawny ze względu na sposób, w jaki funkcja suma przetwarza argumenty. Wartości a i b są przekazywane do funkcji suma jako argumenty, gdzie w funkcji zmienna a jest modyfikowana poprzez dodanie do niej wartości b. Jednakże, ze względu na przekazywanie przez wartość, oryginalna zmienna a w funkcji main nie ulega zmianie. Po wywołaniu funkcji suma, zmienna x zostanie obliczona jako suma pierwotnych wartości a i b, czyli 7 + 3, co daje 10. Taki mechanizm przekazywania argumentów jest typowy w wielu językach programowania i ilustruje podstawową zasadę, że zmienne przekazywane do funkcji nie są zmieniane, chyba że są przekazywane przez wskaźniki lub referencje. Przykład ten podkreśla również znaczenie zrozumienia zakresu zmiennych oraz konsekwencji ich przekazywania, co jest kluczowe w pisaniu efektywnego kodu.
#include <iostream.h> void suma (int a, int b) {a=a+b;} void main() { int a=7,b=3,x; suma(a,b); x=a+b; } Odpowiedzi
Informacja zwrotna
Wybór odpowiedzi 10 jest poprawny ze względu na sposób, w jaki funkcja suma przetwarza argumenty. Wartości a i b są przekazywane do funkcji suma jako argumenty, gdzie w funkcji zmienna a jest modyfikowana poprzez dodanie do niej wartości b. Jednakże, ze względu na przekazywanie przez wartość, oryginalna zmienna a w funkcji main nie ulega zmianie. Po wywołaniu funkcji suma, zmienna x zostanie obliczona jako suma pierwotnych wartości a i b, czyli 7 + 3, co daje 10. Taki mechanizm przekazywania argumentów jest typowy w wielu językach programowania i ilustruje podstawową zasadę, że zmienne przekazywane do funkcji nie są zmieniane, chyba że są przekazywane przez wskaźniki lub referencje. Przykład ten podkreśla również znaczenie zrozumienia zakresu zmiennych oraz konsekwencji ich przekazywania, co jest kluczowe w pisaniu efektywnego kodu.