Funksjon er et veldig viktig konsept på C -språk. Funksjon er kode som hjelper oss å utføre visse handlinger. Basert på definisjonen kan funksjonen deles inn i fire typer.
Dette er basert på funksjon som tar inngangs- og returutgang.
I dagens emne vil vi diskutere samtale etter verdi og samtale med referanse. Disse emnene er helt basert på funksjonens klassifisering.
Programmering Eksempel 1:
I dette programmeringseksemplet vil vi se samtalemekanismen etter verdi.
1 2 3 4 5 6 7 8 9 10 11 12 1. 3 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #inkludere int add (int, int); // Funksjonsdeklarasjonsprototype. int main () int s, x, y; printf ("Angi 2 tall"); Scanf (" %d %d", & x, & y); s = legg til (x, y); // funksjonsanrop. printf ("sum er %d", s); retur 0; int add (int a, int b) // Definisjon av funksjon og passering av verdien gjennom funksjon. int c; c = a + b; return c; |
Produksjon:
Forklaring:
Dette programmeringseksemplet er det ideelle eksemplet på samtale etter verdi. Det er eksemplet på tar noe og returnerer noe.
Legge inn en viss verdi og output ingen -program er det samme som Inngangen ingen og sender ut en viss verdi. Den eneste forskjellen er at som det er av natur å ta noe, så verdien av to tall må sendes i å ringe funksjon. De kalles faktiske argumenter.
Eller brukeren tar verdien fra tastaturet som brukes av Main () -funksjonen. Verdien sendes deretter til add () -funksjonen. Disse verdiene kalles formelle argumenter.
Så det er en type kalt etter verdi eksempel. Ellers er returprosedyren den samme som tar ingenting, returnerer noe prosedyre.
Programmering Eksempel 2:
Her vil vi se et annet eksempel på anrop etter verdimetode ved å bruke tar noe og returnerer ingenting prosedyre.
1 2 3 4 5 6 7 8 9 10 11 12 1. 3 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #inkludere void add (int, int); // Funksjonserklæring globalt int main () int x, y; void add (int, int); // funksjonserklæring lokalt printf ("Angi 2 tall"); Scanf (" %d %d", & x, & y); // faktiske argumenter legg til (x, y); retur 0; void add (int x, int y) // formelle argumenter int c; c = x + y; printf ("sum er %d", c); |
Produksjon:
Forklaring:
Hvis vi ønsker å legge til de to verdiene til to variabler som er erklært inne i hoved (). Legg til dette i et annet funksjonsnavn Legg til (). Deretter bruker vi at noe returnerer ingenting metoden. I dette tilfellet i hovedfunksjonen blir verdien av x, y sendt til add -funksjonen når add () ringer. For dette kan navngis som ring etter verdi.
Hver gang vi gir verdi som et argument til en anropsfunksjon, kalles disse argumentene faktiske argumenter.
Per definisjon, inne i parentesen til en funksjon når vi erklærer variabelen som vil motta verdien av variabelen som sendes ved å ringe funksjonen, kalles formelt argument.
Navnet på variabelen med faktisk argument og formelt argument kan være det samme fordi kompilatoren vet at variabelen x, y er erklært i hoved () -funksjon og x, y erklært i add () er forskjellige variabler.
Når vi kaller funksjonen, passerer vi bare verdien av variabler som er erklært i Main (). For dette skriver vi add (x, y);
Programmering Eksempel 3:
Her vil vi se et eksempel på samtale etter adresse ved å søke tar noe og returnerer noe prosedyre.
1 2 3 4 5 6 7 8 9 10 11 12 1. 3 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #inkludere int add (int *, int *); // Funksjonsprototype erklæring globalt int main () int s, x, y; printf ("Angi to tall:"); Scanf (" %d %d", & x, & y); s = legg til (& x, & y); // å sende adressen til variabler. printf ("summen er: %d \ n", s); retur 0; int add (int *a, int *b) int c; c = *a + *b; return (c); |
Produksjon:
Forklaring:
Dette er et eksempel på samtale ved referanse. Noen ganger i vårt program oppstår en situasjon når vi ikke er i stand til å passere verdien av variabel gjennom funksjon. Vi må passere adressen til disse variablene for å få tilgang til dem. Det kalles samtale ved referanse.
Her passerer vi adressen til Variabel A, variabel B Inne i tilleggsfunksjonen for å oppsummere verdiene til Variabel A, variabel B.
Programmering Eksempel 4:
Her vil vi se et annet eksempel på samtale etter adresse ved å søke tar noe og returnerer noe prosedyre.
1 2 3 4 5 6 7 8 9 10 11 12 1. 3 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #inkludere int Swap (int *, int *); int main () int p = 56; int q = 22; printf ("før du bytter verdien av heltall p: %d \ n", p); printf ("før du bytter verdien av heltall Q: %d \ n", q); Swap (& p, & q); // Ring funksjonen. printf ("Etter å ha byttet verdien av heltall p: %d \ n", p); printf ("Etter å ha byttet verdien av heltall Q: %d \ n", q); retur 0; Int Swap (int *x, int *y) // passerer adressen til variabler. int t; / * midlertidig variabel for å lagre verdien av den første variabelen */ t = *x; *x = *y; *y = t; |
Produksjon:
Forklaring:
Dette er et eksempel på samtale ved referanse. Noen ganger i vårt program oppstår en situasjon når vi ikke er i stand til å passere verdien av variabel gjennom funksjon. Vi må passere adressen til disse variablene for å få tilgang til dem. Det kalles samtale ved referanse.
Her passerer vi adressen til Variabel A, variabel B Inne i byttet () -funksjonen for å bytte verdiene til Variabel A, variabel B. Som et resultat verdier av a, b byttes ut gjennom samtale ved referanse.