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

Trywialny problem?

Object Storage Arubacloud
0 głosów
326 wizyt
pytanie zadane 27 lutego 2016 w C i C++ przez String Gaduła (4,520 p.)
edycja 27 lutego 2016 przez String

Dlaczego kod w postaci:

    int p=1;
    cout << p << endl;
    cout << p++ << endl;
    
    if(p==1) p++;
    cout << p;

wyświetla mi:
1
1
2 ?
Dlaczego nie wyswietla:
1
2
2 ?
To pytanie zapewne należy do jakiś głupich. No ale naprawdę nie mogę tego ogarnąć skoro "++" to jest  "+1"

5 odpowiedzi

+1 głos
odpowiedź 27 lutego 2016 przez Colossus Mądrala (6,410 p.)
wybrane 27 lutego 2016 przez String
 
Najlepsza
int main(){
	int n;
	cin>>n;
	int a=n;
	cout<<++n<<" "<<a++;
    return 0;
}

Musisz zrozumieć różnicę między preinkrementacją, a postinkrementacją.

Postinkrementacja

cout<<i++;

oznacza wypisanie wartości zmiennej i, a następnie dodanie do niej jeden

Preinkrementacja

cout<<++i;

oznacza dodanie jeden do zmiennej i, a następnie wypisanie jej wartości

 

+2 głosów
odpowiedź 27 lutego 2016 przez draghan VIP (106,230 p.)
komentarz 27 lutego 2016 przez String Gaduła (4,520 p.)
Ok, wszystko stało się jasne.
Taka mała pierdółka aa tyle zachodu :o
To nic. :)
komentarz 27 lutego 2016 przez draghan VIP (106,230 p.)
Człowiek uczy się codziennie. :) Miłego kodzenia.
0 głosów
odpowiedź 27 lutego 2016 przez SebekChlebek Stary wyjadacz (11,290 p.)
Przy ifie masz p = 1

Powinno być p == 1

Znak "=" przypisuje wartość!
komentarz 27 lutego 2016 przez String Gaduła (4,520 p.)
Ok, w kodzie miałem w porządku, teraz poprawiłem. Wcześniej źle przepisałem :)
komentarz 27 lutego 2016 przez SebekChlebek Stary wyjadacz (11,290 p.)
Daj przed couta inkrementacje i potem znów p wypisz w cout
komentarz 27 lutego 2016 przez String Gaduła (4,520 p.)
Nie pytam o to co mam zrobić, żeby mi tak wyświetliło, tylko dlaczego mi tak wyswietla
komentarz 27 lutego 2016 przez SebekChlebek Stary wyjadacz (11,290 p.)
Ten kod jest w funkcji main? Czy gdzieś indziej?
komentarz 27 lutego 2016 przez String Gaduła (4,520 p.)
tak tak, wiecej kodu nie ma
komentarz 27 lutego 2016 przez SebekChlebek Stary wyjadacz (11,290 p.)
Nie mam pojęcia. Naprawdę trywialny problem :D
0 głosów
odpowiedź 27 lutego 2016 przez figorin Bywalec (2,040 p.)

cout << ++p zamiast  cout <<p++

komentarz 27 lutego 2016 przez String Gaduła (4,520 p.)
To nie odpowiedz na moje pytanie :)
0 głosów
odpowiedź 27 lutego 2016 przez String Gaduła (4,520 p.)
edycja 27 lutego 2016 przez String
To może inaczej.
Zapis:
cout << p << endl;
cout << p++ << endl;
cout << p++ << endl;

powoduje:
1
1
2

Pytanie: DLACZEGO "++" dopiero za 2 razem "podnosi" moje p o wartość = 1 ?

W tym przypadku:
       int p=1;
       if(1) p++;
       cout << p;
Wynik to 2, czyli tutaj p - podniosło się o 1 za pierwszym razem.
yhh. O co tu chodzi?
1
komentarz 27 lutego 2016 przez figorin Bywalec (2,040 p.)
p++ inkrementuje swoją wartość,lecz dopiero po dokonaniu operacji.++p od razu inkrementuje wartość zmiennej,dlatego od razu można zovaczyć rezulatat.Gdybyć teraz wpisał cout << p,to otrzymałbyć wartość 3.
komentarz 27 lutego 2016 przez String Gaduła (4,520 p.)
Ok już rozumiem, dzięki :)

Podobne pytania

0 głosów
1 odpowiedź 339 wizyt
pytanie zadane 28 marca 2016 w Systemy operacyjne, programy przez paweldz99 Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 142 wizyt
pytanie zadane 20 września 2022 w Sieci komputerowe, internet przez Chlipchlip Użytkownik (850 p.)
0 głosów
1 odpowiedź 217 wizyt
pytanie zadane 30 grudnia 2018 w C i C++ przez m4rcingsxr Początkujący (360 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

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

...