Witam.
Jestem początkujący. Podłapałem trochę języka C++ a teraz staram uczyć się czystego C...trochę zaczęło mi się mieszać. Czy może mi ktoś powiedzieć czy w "CZYSTYM" C można do swoich funkcji przekazywać wskaźniki (czy istnieje rozgraniczenie tak jak w Cpp na przekazywanie przez referencję i przekazywanie wskaźników??)?
C++ odziedziczyło wskaźniki po C, referencja to coś nowego w C++, czego nie ma w C.
Też mi się wydawało(a przynajmniej tak czytałem jak próbowałem uczyć się Cpp sam), że referencji w czystym C nie ma, jednak aktualnie studiuję książkę p. Sextona (jakoś tak) pt. "Język C-to proste" (książka de facto trochę "stara" bo 2001 rok) i tam jest podrozdział zatytułowany "Przekazywanie argumentów przez referencję"... o co chodzi?
przykład jest ,"mniej więcej taki"
void dodaj_liczby(int, float*);
int main(void)
{
//...
dodaj_liczby(x, &y);
//...
return (0);
}
void dodaj_liczby(int a, float* b)
{
*b = *b + a;
return;
}
Jak na mój gust (chociaż bardzo prawdopodobne, że się mylę-jestem zielony :D ) chodziło tutaj o to, że przekazujemy wskaźnik ale de facto do funkcji po czym przy pomocy operatora wyłuskania wartości przypisujemy jakąś wartość, a cała "referencja" polega na tym, że "oryginalna" zmienna z funkcji main zmienia też swoją wartość...?? Strasznie mi się to teraz zaczęło mylić... ;/
W materiałach dot. języka C faktycznie często się używa słowa referencja mówiąc o wskaźniku.
Ok-czyli się jeszcze upewnię... (jak głupek ale co tam ;D) tutaj chodzi o wskaźniki? :)
Tak. W C nie ma referencji. Jeśli ktoś mówi o nich to:
- ma na myśli wskaźniki
- nie ma pojęcia o czym mówi.
To pierwsze jest całkiem popularne u ludzi, którzy pisali dużo w C, a w C++ nic lub bardzo mało.
Dzięki!!! :D Pozdrawiam... ;)