Men om jag vill returnera 3 tal , tal1 tal2 tal3 från funktion1 som jag sen vill stoppa in i funktion2 där jag sen vill returnera 3 tal igen och stoppa in i funktion 3
void main()
{
inlasning();
sortering(3 tal från funktion inlasning);
bytplats(3 tal från funktion sortering);
utskrift(3 tal från funktion bytplats);
}
Men kan man returnera flera värden från en funktion??
Nej. Men du kan modifiera vid anropet medskickade parametrar och du kan returnera en pekare till en datasamling som innehåller flera värden.
I C är det vanligt att man inte returnerar värdet utan en felkod. Värdena som ska modifieras sänds som pekare till adresserna de ligger på och i funktionen är det bara att pilla med dem så består resultatet när funktionen terminerat.
& är referenser, vilket innebär att du sänder adressen till variablerna tal1 och tal1, istället för en kopior av värdena för tal1 och tal2. Om det varit det senare hade kopiorna försvunnit när funktionen är klar, men genom att det är adresser du skickar så är det innehållet på just den adressen du bearbetar och därför är värdena då förändrade efter att funktionen är klar (iom att funktionen byter plats på dem). :)
& är referenser, vilket innebär att du sänder adressen till variablerna tal1 och tal1, istället för en kopior av värdena för tal1 och tal2.
Rätt men ändå lite diffust svarat.
& och & är olika saker. Dels betyder &-tecknet addressen till en pekare men det kan också betyda att man avser att skicka parametrar by reference till en funktion. Det är olika saker.
Sedan att referenser är slags pekare gör inte att man kan likställa de två betydelserna av &-tecknet.
Jo, men i grund och botten är det samma sak, även om det är dolt i ett mer eller mindre abstrakt lager. Det är fortfarande adressen som explicit skickas med och inte kopior av värdena på den adressen. Kändes inte meningsfullt att i denna tråd lägga upp en mer djupgående förklaring kring adresser, stackar och funktionsanrop.
Jag vet precis vad ni menar, och håller med. Så är det!
Men jag undviker att tänka på det, jag har det bara i bakhuvudet.
Som människa, märker man inte så stor skillnad (nästan ingen)
Och det är ju det som är lite tanken med C++ och OOP:
'Tänk som den människa du är - och inte som en dator' :)
266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e