Wpis z mikrobloga

Jakie będzie wyjście z tego programu i dlaczego każdy kompilator daje inny wynik? :O

#include

int main()
{
int tab[3] = {1,2,3};
std::cout<< ++*tab<<(*tab)++<< *tab + 1;

return 0;
}

#programowanie #cpp
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kaaye: Bo występują tam tzw. niezdefiniowane zachowania i standard nie określa w jaki sposób należy ogarnąć taką nieogarniętość programisty. A tak na serio to się nie skompiluje i każdy kompilator będzie wyrzucał błędy w inny sposób.
  • Odpowiedz
@kaaye: ano widzisz, ucięło gwiazdki i stąd błędy kompilacji.

Mi się kompiluje zarówno na cpp.sh jak i clionie.

Nie, kompiluje się na GCC, ewentualnie clangu. CLion nie ma nic do tego.
  • Odpowiedz
@rotflolmaomgeez: ehh wiem ale w cpp umiem tylko na poziomie akademickim ( ͡° ͜ʖ ͡°) i nie chciało mi się sprawdzać jaki jest domyślny kompilator w clionie na maku to napisałem clion
  • Odpowiedz