Sojusz Fallen
Fallen
FAQ
Szukaj
Użytkownicy
Grupy
Galerie
Rejestracja
Profil
Zaloguj się, by sprawdzić wiadomości
Zaloguj
Forum Sojusz Fallen Strona Główna
->
C++
Napisz odpowiedź
Użytkownik
Temat
Treść wiadomości
Emotikony
Więcej Ikon
Kolor:
Domyślny
Ciemnoczerwony
Czerwony
Pomarańćzowy
Brązowy
Żółty
Zielony
Oliwkowy
Błękitny
Niebieski
Ciemnoniebieski
Purpurowy
Fioletowy
Biały
Czarny
Rozmiar:
Minimalny
Mały
Normalny
Duży
Ogromny
Zamknij Tagi
Opcje
HTML:
TAK
BBCode
:
TAK
Uśmieszki:
TAK
Wyłącz HTML w tym poście
Wyłącz BBCode w tym poście
Wyłącz Uśmieszki w tym poście
Kod potwierdzający: *
Wszystkie czasy w strefie CET (Europa)
Skocz do:
Wybierz forum
Klasowe - Technikum nr 7 Zabrze
----------------
Ściągi, Zadania itp.
Piastowie
Matura 04.05.2012 - 22.05.2012 - W trakcie...
Konkursy
III Rzeczpospolita
Matura - Lektury
OGame Wewnętrzne
----------------
Handel
Wojny i Pakty
Farmy i Skany
Nasze Najlepsze RW
Zmiany i Rozmowy o OGame
Statystyki
Metal za kryształ
Kryształ za deuter
Deuter za kryształ
Metal za deuter
Deuter za metal
Informatyka Zaawansowana
OB
SOiSK
Specjalizacja
PSiO
UTK
Angol
Ang.Zaw.
Fiza
Gegra
Hista
Mata
Niemiec
Polski
PP
Religia
WOS
Biola
Chemia
Władcy
Lektury
Olimpiada o Wynalazczości
TP
C
C++
PHP
Walka o Niepodległość
Java
Hyde Park
----------------
             
Zegar
Gadka Szmatka
Dowcipy
Gry Komputerowe
Porozmawiajmy o OGame
Sport
Filmy i TV
Nowinki Komputerowe i Komorkowe
Muza
Inne Unia
----------------
Nasza Gra na Innych Uniach
Archiwum
----------------
U60 i Akademia Fallen
U38
Chwała Fallen
U1
Przegląd tematu
Autor
Wiadomość
Ricko
Wysłany: Sob 17:00, 11 Gru 2010
Temat postu: Język C++ Przekazywanie Parametrów Funkcji
PRZEKAZYWANIE PRZEZ WARTOŚĆ
Cytat:
#include <stdio.h>
#include <conio.h>
void zmien(int a)
{
a=a+5;
printf("%s %d \n","Zmienna a wewnatrz funkcji",a);
}
int main ()
{
int a=5;
printf("%s %d \n","Zmienna a przed funkcja ",a);
zmien(a);
printf("%s %d \n","Zmienna a po wyjsciu z funkcji",a);
getch();
return 0;
}
Wynik działania:
Cytat:
Zmienna a przed funkcja 5
Zmienna a wewnatrz funkcji 10
Zmienna a po wyjsciu z funkcji 5
Komentarz:
Cytat:
W momencie wywoływania funkcji jest stworzona na jej potrzeby zmienna lokalna o podanej nazwie
i do niej kopiowana jest wartość przekazana funkcji.Po zakończeniu działania funkcji zmienne powiązane z argumentami przekazanymi do funkcji przestają istnieć.Po wyjściu z funkcji odwołujemy się do oryginalnej zmiennej która nie została zmodyfikowana
_____________________________________________________________
REFERENCJA
Cytat:
#include <stdio.h>
#include <conio.h>
void zmien(int
&
a)
{
a=a+5;
printf("%s %d \n","Zmienna a wewnatrz funkcji Zmien",a);
}
int main ()
{
int a=5;
printf("%s %d \n","Zmienna a przed funkcja ",a);
zmien(a);
printf("%s %d \n","Zmienna a po wyjsciu z funkcji 'Zmien' ",a);
getch();
return 0;
}
Wynik Działania:
Cytat:
Zmienna a przed funkcja 5
Zmienna a wewnatrz funkcji 10
Zmienna a po wyjsciu z funkcji 10
Komentarz:
Cytat:
Za pomocą znaku
&
umieszczonego przed nazwa zmiennej odwołujemy się bezpośrednio do adresu pamięci pod którym zmienna jest przechowywana.Wszystkie operacje będą wiec wykonywane na oryginalnej zmiennej, a nie na zmiennej, która została powołana tylko na czas działania funkcji. Po wyjściu zmiany zostały zachowane.
_____________________________________________________________
PRZEKAZYWANIE PRZEZ WARTOŚĆ - PRAKTYCZNE ZASTOSOWANIE
Cytat:
#include <iostream>
#include <cstdio>
using namespace std;
void suma (int a , int b)
{
a=a+b;
b--;
}
int main ()
{
int a=1,b=2,x;
suma (a,b); /* Zgodnie z funkcją a=1+2=3 b=2-1=1, jesli dodawanie byloby zawarte w funkcji lub występowałaby referencja to x=3+1=4 */
x=a+b; /* W tym programie nie ma jednak referencji, wiec dodawanie odbywa się na zmiennych globalnych, a nie lokalnych z funkcji SUMA, zatem x=1+2=3 */
cout<<"x rowna sie "<<x<<endl;
getchar();
return 0;
}
Wynik:
Cytat:
x równa się 3
Komentarz:
Cytat:
W programie mamy podane dwie zmienne a=1, b=2, zawartą mamy też funkcję, która określa a jako sumę a i b (a=a-b), a także zmniejsza b o 1 (b--). Nie ma tu jednak referencji, więc to co się dzieje w funkcji nie oddziaływuje na działanie programu głównego, zatem dodajemy zmienne bez modyfikacji zawartej w funkcji (a=a+b; b--) czyli 1 i 2 (x=1+2=3)
_____________________________________________________________
REFERENCJA - ZASTOSOWANIE PRAKTYCZNE
Cytat:
#include <iostream>
#include <cstdio>
using namespace std;
void suma (int & a , int & b)
{
a=a+b;
b--;
}
int main ()
{
int a=1,b=2,x;
suma (a,b); /* a=1+2=3 b=2-1=1 */
x=a+b; /*Program ten posiada referencje, zatem wszystko odbywa się na tych samych zmiennych
i w programie głównym i w funkcji, stąd pobierane są dane z funkcji a=3 i b=1 x=3+1=4*/
cout<<"x wynosi "<<x<<endl;
getchar();
return 0;
}
Wynik:
Cytat:
x wynosi 4
Komentarz:
Cytat:
W programie zawarta jest referencja, przez co wszystkie operacje wykonywane są na oryginalnej zmiennej. Zmienne są modyfikowane przez operacje z funkcji, przez co ich suma jest inna, niż ta gdy nie było referencji
_____________________________________________________________
źródło: Programy Dadacza -
forum inf.zabrze.pl
fora.pl
- załóż własne forum dyskusyjne za darmo
Powered by
phpBB
© 2001, 2002 phpBB Group
Regulamin