W C++ możliwe jest przekazywanie zmiennych zarówno przez referencję jak i wskaźnik. Czy w języku C można przekazywać jedynie przez wskaźnik? Dla przykładu kod przekazywania dwóch zmiennych przez wskaźnik:
#include <stdio.h>
#include <stdlib.h>
void przypisz_mniejsza_liczbe_do_wiekszej(double *x, double *y)
{
if (*x > *y)
*y = *x;
else
*x = *y;
}
int main(void)
{
double liczba1, liczba2;
printf("Podaj dwie liczby: ");
scanf_s("%lf %lf", &liczba1, &liczba2);
przypisz_mniejsza_liczbe_do_wiekszej(&liczba1, &liczba2);
printf("Liczby wynosza teraz %f oraz %f\n", liczba1, liczba2);
system("pause");
return 0;
}
A teraz kod z przekazaniem przez referencję:
#include <stdio.h>
#include <stdlib.h>
void przypisz_mniejsza_liczbe_do_wiekszej(double &x, double &y)
{
if (x > y)
y = x;
else
x = y;
}
int main(void)
{
double liczba1, liczba2;
printf("Podaj dwie liczby: ");
scanf_s("%lf %lf", &liczba1, &liczba2);
przypisz_mniejsza_liczbe_do_wiekszej(liczba1, liczba2);
printf("Liczby wynosza teraz %f oraz %f\n", liczba1, liczba2);
system("pause");
return 0;
}
Błędy w kodzie:
wiersz 4: "nienazwane parametry prototypowane są niedozwolone, jeśli występuje zawartość",
wiersz 6: "identyfikator x jest niezdefiniowany, identyfikator y jest niezdefiniowany"