C Gi adresser og pekere til funksjoner

I denne opplæringen lærer du å sende adresser og pekere som argumenter til funksjoner ved hjelp av eksempler.

I C-programmering er det også mulig å sende adresser som argumenter til funksjoner.

For å godta disse adressene i funksjonsdefinisjonen, kan vi bruke pekere. Det er fordi pekere brukes til å lagre adresser. La oss ta et eksempel:

Eksempel: Send adresser til funksjoner

 #include void swap(int *n1, int *n2); int main() ( int num1 = 5, num2 = 10; // address of num1 and num2 is passed swap( &num1, &num2); printf("num1 = %d", num1); printf("num2 = %d", num2); return 0; ) void swap(int* n1, int* n2) ( int temp; temp = *n1; *n1 = *n2; *n2 = temp; )

Når du kjører programmet, vil utdataene være:

 num1 = 10 num2 = 5

Adressen til num1 og num2 overføres til swap()funksjonen ved hjelp av swap(&num1, &num2);.

Pekere n1 og n2 godtar disse argumentene i funksjonsdefinisjonen.

 void swap(int* n1, int* n2) (… ) 

Når * n1 og * n2 endres inne i swap()funksjonen, endres også num1 og num2 inne i hovedfunksjonen ().

Inne i swap()funksjonen, *n1og *n2byttet. Derfor byttes også num1 og num2 ut.

Legg merke til at swap()det ikke returnerer noe; dens returtype er void.

Eksempel 2: Overføring av pekere til funksjoner

 #include void addOne(int* ptr) ( (*ptr)++; // adding 1 to *ptr ) int main() ( int* p, i = 10; p = &i; addOne(p); printf("%d", *p); // 11 return 0; )

Her er verdien som er lagret ved p *p,, i utgangspunktet 10.

Vi sendte deretter pekeren p til addOne()funksjonen. Ptr-pekeren får denne adressen i addOne()funksjonen.

Inne i funksjonen økte vi verdien lagret på ptr med 1 ved hjelp av (*ptr)++;. Siden ptr og p-pekere begge har samme adresse, er *pinnsiden main()også 11.

Interessante artikler...