Funkcja jest bardzo ważną koncepcją w języku C. Funkcja to kawałek kodu, który pomaga nam wykonać określone działanie. Na podstawie jego definicji funkcja można podzielić na cztery typy.
Jest to oparte na funkcji przyjmującej dane wejściowe i zwrotne.
W dzisiejszym temacie omówimy połączenie według wartości i połączenia przez odniesienie. Tematy te są całkowicie oparte na klasyfikacji funkcji.
Przykład programowania 1:
W tym przykładzie programowania zobaczymy mechanizm wywołania według wartości.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #włączać int add (int, int); // Prototyp deklaracji funkcji. int main () int s, x, y; printf („Wprowadź 2 liczby”); Scanf („ %d %d”, i x i y); s = add (x, y); // wywołanie funkcji. printf („suma to %d”, s); powrót 0; int add (int a, int b) // definicja funkcji i przekazanie wartości przez funkcję. int c; c = a + b; zwrot c; |
Wyjście:
Wyjaśnienie:
Ten przykład programowania jest idealnym przykładem wywołania według wartości. Jest to przykład bierze coś i coś zwraca.
Wprowadź pewną wartość i program wyjściowy Brak jest taki sam Jak Wejście Brak i wyprowadzają pewną wartość. Jedyną różnicą jest to, że z natury coś przyjmuje, więc wartość dwóch liczb musi zostać przekazana w funkcji wywoływania. Nazywają się faktyczne argumenty.
Lub użytkownik przyjmuje wartość z klawiatury, która jest używana przez funkcję Main (). Wartość jest następnie przekazywana do funkcji add (). Te wartości są wywoływane formalne argumenty.
To jest jeden rodzaj nazywane wartością przykład. W przeciwnym razie procedura zwrotna jest taka sama, jak nic nie bierze, zwraca coś procedury.
Przykład programowania 2:
Tutaj zobaczymy kolejny przykład wywołania metodą wartości, stosując coś i nie zwraca procedury.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #włączać void add (int, int); // Deklaracja funkcji na całym świecie int main () int x, y; void add (int, int); // Deklaracja funkcji lokalnie printf („Wprowadź 2 liczby”); Scanf („ %d %d”, i x i y); // faktyczne argumenty Dodaj (x, y); powrót 0; void add (int x, int y) // formalne argumenty int c; c = x + y; printf („suma to %d”, c); |
Wyjście:
Wyjaśnienie:
Jeśli chcemy dodać dwie wartości dwóch zmiennych, które są zadeklarowane wewnątrz main (). Dodaj to w innej nazwie funkcji Add (). Następnie używamy czegoś, co zwraca metodę nic. W takim przypadku w funkcji głównej wartość x, y jest przekazywana do funkcji dodawania, gdy przywołuje add (). Bo można to nazwać Zadzwoń według wartości.
Ilekroć przekazujemy wartość jako argument funkcji wywołania, wówczas argumenty te nazywane są faktycznymi argumentami.
Z definicji, wewnątrz nawiasu funkcji, gdy deklarujemy zmienną, która odbędzie wartość zmiennej, która jest przekazywana przez funkcję wywoływania, nazywa się argumentem formalnym.
Nazwa zmiennej faktycznego argumentu i formalnego argumentu może być taka sama, ponieważ kompilator zna tę zmienną x, y są zadeklarowane wewnątrz funkcji main () i x, y zadeklarowane w add () to różne zmienne.
W funkcji wywoływania po prostu przekazujemy wartość zmiennych zadeklarowanych wewnątrz Main (). W tym celu piszemy dodaj (x, y);
Przykład programowania 3:
Tutaj zobaczymy przykład połączenia według adresu, stosując coś i zwraca coś procedury.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #włączać int add (int *, int *); // Deklaracja prototypu funkcji na całym świecie int main () int s, x, y; printf („Wprowadź dwie liczby:”); Scanf („ %d %d”, i x i y); s = add (& x i y); // Przekazywanie adresu zmiennych. printf („suma to: %d \ n”, s); powrót 0; int add (int *a, int *b) int c; c = *a + *b; zwrot (c); |
Wyjście:
Wyjaśnienie:
To jest przykład wywołania przez odniesienie. Czasami w naszym programie sytuacja występuje, gdy nie jesteśmy w stanie przekazać wartości zmiennej poprzez funkcję. Musimy przekazać adres tych zmiennych, aby uzyskać do nich dostęp. Nazywa się to Call przez odniesienie.
Tutaj przekazujemy adres Zmienna A, zmienna B wewnątrz funkcji dodawania, aby sumować wartości Zmienna A, zmienna B.
Przykład programowania 4:
Tutaj zobaczymy kolejny przykład połączenia według adresu, stosując coś i zwraca coś procedury.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #włączać int swap (int *, int *); int main () int p = 56; int q = 22; printf („Przed zamianą wartości liczby całkowitej p: %d \ n”, p); printf („Przed zamianą wartości liczby całkowitej q: %d \ n”, q); zamiana (i p, i q); // Wywołaj funkcję. printf („Po zamianie wartości liczby całkowitej p: %d \ n”, p); printf („Po zamianie wartości liczby całkowitej q: %d \ n”, q); powrót 0; int swap (int *x, int *y) // Przekazywanie adresu zmiennych. int t; / * zmienna tymczasowa do przechowywania wartości 1. zmiennej */ t = *x; *x = *y; *y = t; |
Wyjście:
Wyjaśnienie:
To jest przykład wywołania przez odniesienie. Czasami w naszym programie sytuacja występuje, gdy nie jesteśmy w stanie przekazać wartości zmiennej poprzez funkcję. Musimy przekazać adres tych zmiennych, aby uzyskać do nich dostęp. Nazywa się to Call przez odniesienie.
Tutaj przekazujemy adres Zmienna A, zmienna B wewnątrz funkcji swap (), aby zamienić wartości Zmienna A, zmienna B. W rezultacie Wartości a, b są zamienne poprzez połączenie przez odniesienie.