Przekazywanie argumentów do funkcji przez wskaźnik.

0

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??)?

2

C++ odziedziczyło wskaźniki po C, referencja to coś nowego w C++, czego nie ma w C.

0

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ć... ;/

3

W materiałach dot. języka C faktycznie często się używa słowa referencja mówiąc o wskaźniku.

0

Ok-czyli się jeszcze upewnię... (jak głupek ale co tam ;D) tutaj chodzi o wskaźniki? :)

2

Tak. W C nie ma referencji. Jeśli ktoś mówi o nich to:

  1. ma na myśli wskaźniki
  2. 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.

0

Dzięki!!! :D Pozdrawiam... ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1