Nawet w C tablice nie są przekazywane przez wartość, ale przez wskaźnik. To jest podstawowa wiedza składni języka. Z tego powodu pchanie na siłę tam ampersand (referencji) po prostu nie ma sensu. Tablice zawsze zachowują się tak, jakby były przekazane przez referencję.
zupełnie nie zrozumiałeś co miałem na myśli pisząc "źle zadane pytanie"
Tablice zawsze zachowują się tak, jakby były przekazane przez referencję
Po co referencja do tablicy? Może coś przeoczyłem w rozważaniach, ale tablica i tak jest przekazywana przez coś podobnego do referencji :) więc dodanie referencji nie powinno nic zmienić...?
dobrze wiedzieć, dzięki :D
to w takim razie rozwiązuje mój problem
#skąd czerpać tą podstawową wiedzę składni języka? czytałem różne poradniki, kursy, ale albo zakładają że już wszystko wiem, przy algorytmice, albo dotyczą kompletnych podstaw... a i w kursach o referencji nie trafiłem kompletnie na tablice, żadnego wytłumaczenia, po prostu nic, (autor założył że już to wiem? wtf)
#trochę już kombinuję, pytanie czysto teoretyczne, chodzi mi o jakieś proste rozwiązanie, nie o jakąś własną, złożoną implementację czy w takim razie da się tablicę przekazać do funkcji tak, jak zwykłą zmienną? najlepiej, jakimś magicznym sposobem który by nie marnował pamięci, ale żeby tablica po zakończeniu funkcji pozostała bez zmian?
http://melpon.org/wandbox/permlink/9jgAQV0DwYoXmzmV
tylko co w takim razie robi to rozwiązanie pingwina? nie jest to w takim razie wyważanie otwartych drzwi :D ?
edit:
- Tylko jeszcze, jakby mi ktoś napisał, po co? Poważnie pytam... Bo jakoś nie widzę zastosowania takiego wymuszania i to przez referencję... Jak już, to ja bym wolał tak: *
Kopiuj
struct TabInt100 {
int t[100];
};
- No i wtedy sobie mogę przekazywać TabInt100 jak chcę. I przez wartość (kopiowanie), i przez referencję, i przez stałą -- mam wybór semantyki przekazywania wartości, a rozmiar zawsze pozostaje 100...*
*Nie. Jak chcesz mieć taki wybór to std::array. *
obstawiam że tu jest odpowiedź na pytanie, tylko że za mało wiem żeby to zrozumieć :D