Witam, mam pytanko dotyczące stosowania przecinka w C++, ale nie jako separator argumentów funkcji. Może podam od razu przykład: w moim programie występuje funkcja
int bin_to_dec(string bin)
Pewnie każdy pisał już coś takiego w swoim życiu, ale tak dla przypomnienia: jest to funkcja zamieniająca liczbę binarną, zapisaną jako tekst, na liczbę w systemie dziesiętnym. I tutaj pojawia się problem, bo w moim kodzie występuje taka pętla:
int bin_to_dec(string bin) {
int wynik = 0, pot = 1;
for (int i = bin.size() - 1; i >= 0; i --)
wynik += (int)((bin[i] != '0') * pot), pot *= 2;
return wynik;
}
Nauczyciel mówił mi, że ten przecinek w 4. linijce nie determinuje kolejności wykonania operacji, czyli łatwiejszym językiem: powiedział, że te dwie operacje niekoniecznie muszą się wykonać w tej kolejności jak ja to napisałem. Chciałem to sprawdzić i kilkanaście razy odpaliłem program i wszystko działa. Na internecie nie mogłem znaleźć potwierdzenia tezy mojego nauczyciela, a chciałbym zaznaczyć, że kolejność wykonania operacji w tej funkcji jest kluczowa. I tutaj, wreszcie, dobrnąłem do mojego pytania: Czy przecinek w tym przypadku rzeczywiście nie gwarantuje tego, że te dwie operacje wykonają się w kolejności przeze mnie napisanej?
Dziękuję z góry za odpowiedzi i pozdrawiam, Adam :D