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

operator += C++

Object Storage Arubacloud
+1 głos
29,175 wizyt
pytanie zadane 17 listopada 2016 w C i C++ przez qlucha Obywatel (1,790 p.)
for (int i=0;i<=2;i++)
    {
        x+=x+100;
        x++;
        cout<<x<<endl;
    }


    iteracja 0 x=101
    iteracja 1 x=303
    iteracja 2 x=707

Z ciekawośći ucząc sie C++ wstawiłem do pętli kod jak wyżej u góry,
kompilator nie zgłosił błędu , ale wyniki sumowania mnie zaskoczyły,
liczyłem na wynik x=101,202,303 . gdzie popełniłem błąd?

'po zamianie operatora += na =+ wyniki wychodzą takie jak chciałem 
czy ten pierwszy to jest błedny zapis czy spełnia on inna funkcje
niż dodaj do zmienniej wszystko po prawej stronie'
dzieki za odpowiedz. (Wiem że kod jest prosty i mozna bylo go zapisac lepiej ale chodzi mi o zrozumienie mechaniki działania C++)

3 odpowiedzi

+3 głosów
odpowiedź 17 listopada 2016 przez Porcupine Nałogowiec (31,560 p.)
Operator += dodaje wartość po prawej stronie do wartości znajdującej się w danej zmiennej czyli:

x += y jest równoważne x = x + y

W Twoim przypadku:

Iteracja 0:

   Linia 3: x += 0 + 100  --> x += 100 --> x = 0 + 100 (bo wstępnie x = 0)
   Linia 4: x++ --> x = 101

Iteracja 1:

   Linia 3: x += 101 + 100 --> x = 101 + 101 + 100 = 302

   Linia 4: x ++ --> x = 303

Iteracja 2:

   Linia 3: x += 303 + 100 --> x = 303 + 303 + 100 = 706

   Linia 4: x ++ --> x = 707
+2 głosów
odpowiedź 17 listopada 2016 przez niezalogowany
edycja 18 listopada 2016
Przypadek x+=(x+100); oznacza on to samo co x=x+(x+100);

Natomiast x=+(x+100) interpretowane jest jako to x=(x+100) co można też zapisać jak x+=100;
1
komentarz 17 listopada 2016 przez niezalogowany
W pierwszym sposobie masz operację z c++. Drugi to matematyka.
0 głosów
odpowiedź 17 listopada 2016 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Cześć,

Nie wiem czy jeszcze myślę logicznie o tej godzinie, ale problem jest chyba tutaj

x+=x+100;

Chciałeś dać tutaj chyba

x = x + 100

albo

x += 100

Pozrawiam :)

Podobne pytania

0 głosów
1 odpowiedź 197 wizyt
0 głosów
2 odpowiedzi 562 wizyt
pytanie zadane 22 marca 2020 w C i C++ przez wall7489 Obywatel (1,250 p.)
0 głosów
0 odpowiedzi 871 wizyt
pytanie zadane 15 grudnia 2018 w C i C++ przez Używtkownik Nowicjusz (120 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,961 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!

...