C/Funkcje: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
m →‎Wstęp: formalnei
m →‎Przykład: nowy przykład
Linia 336:
 
Możliwe jest modyfikowanie zmiennych przekazywanych do funkcji jako parametry - ale do tego w C potrzebne są [[C/Wskaźniki#Gdy argument jest wskaźnikiem...|wskaźniki]].
=====PrzykładPrzykłady=====
 
Funkcja swap wczytuje 2 wartości i zamienia je miejscami, korzystając ze wskaźników
Linia 371:
 
Jak widzimy funkcja zmienia wartości swoich argumentów. Porównaj: [[C/Zmienne#Stałe|stałe argumenty]].
 
 
Tutaj funkcja ma 2 argumenty
* pierwszy jest stały = funkcja nie zmienia jego wartosci
* drugi jest wskaźnikiem. Funkcja zmienia jego wartości
 
<syntaxhighlight lang=c>
#include <stdio.h>
/ gcc s.c -Wall
// ./a.out
void f (const double a, double *b) {
*b = - (*b) * 2.0; // zmieniamy wartość b korzystająć tylko z b
*b += a; // zmieniamy wartość b korzystająć ze zmiennych a i b; zmienna a się nie zmienia
}
 
 
int main()
{
const double a = 0.2;
double b= 1.0;
 
printf("a = %f \t b =%f\n", a, b);
f(a, &b);
printf("a = %f \t b =%f\n", a, b);
 
return 0;
}
</syntaxhighlight>
 
 
Wynik:
gcc s.c -Wall -lm
./a.out
a = 0.200000 b =1.000000
a = 0.200000 b =-1.800000
 
===== Tablice jako parametr funkcji =====