• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Działanie kompilatora c++

Object Storage Arubacloud
+1 głos
187 wizyt
pytanie zadane 25 czerwca 2018 w C i C++ przez four Użytkownik (720 p.)

Witam mam problem ze zrozumieniem działania poniższego programu:

#include<iostream>
using namespace std;
int main()
{
	int i=10;
	cout<<i++<<" "<<i++<<" "<<i++<<endl;
	i=10;
	cout<<++i<<" "<<++i<<" "<<++i<<endl;
	i=10;
	cout<<++i<<" "<<i++<<" "<<++i<<endl;
}

I nie rozumiem dlaczego kompilator wyświetla:

12 11 10

13 13 13

13 11 13

2 odpowiedzi

+3 głosów
odpowiedź 25 czerwca 2018 przez monika90 Pasjonat (22,940 p.)

W obecnej wersji języka, czyli C++17, prawidłowy wynik to

10 11 12
11 12 13
11 11 13

wcześniej, przed C++17, zachowanie było niezdefiniowane. Jeżeli chcesz mieć prawidłowy wynik, to spraw sobie współczesny kompilator i używaj go w trybie C++17.

0 głosów
odpowiedź 25 czerwca 2018 przez Bondrusiek Maniak (61,370 p.)

Witam,

wydaje mi się że przyczyną tego rezultatu jest działanie strumienia cout. Bo jak rozdzielisz cout to zmienna zmieniają się w sposób bardziej logiczny

#include <iostream>

using namespace std;


int main()
{
    //jeden sposób z pytania
    int i=10;
    cout<<i++<<" "<<i++<<" "<<i++<<endl;
    //drugi sposób
    i=10;
    cout<<i++;
    cout <<" ";
    cout <<i++;
    cout <<" ";
    cout <<i++<<endl;

    return 0;

}

 

Podobne pytania

0 głosów
2 odpowiedzi 431 wizyt
pytanie zadane 24 lutego 2019 w C i C++ przez Moti Użytkownik (650 p.)
0 głosów
1 odpowiedź 676 wizyt
pytanie zadane 16 stycznia 2021 w C i C++ przez Bandyta Początkujący (270 p.)

92,538 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,923 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...