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

Wskaźniki - problem z analizą jednej linijki

0 głosów
185 wizyt
pytanie zadane 20 listopada 2015 w C i C++ przez Kapi2222 Obywatel (1,220 p.)

Witam ponownie :) Mam zadanie do rozwiązania ze wskaźników. Siedzę już nad nim dobre poł godziny i po części idzie mi dobrze (tak mi się wydaje). Nie umiem przeanalizować jednej linijki kodu i proszę o pomoc. 

#include <stdio.h>
int main()
{
 int tab[3] = {3,4,5};
 int *ptr = &tab[1];
 printf("%d\n", (*(tab+2))++); // tab[0] + 2 wynosi 5 ,a w nastepnym kroku dodajemy 1
 printf("%d\n", ++(*(tab+2))); //dodajemy 1+1 + tab[0]+2 czyli wychodzi nam 7
 printf("%d\n", ++*ptr); //do tab[1] dodajemy 1 czyli 5
 printf("%d, %d, %d\n",tab[0],tab[1],tab[2]);
 return 0;}

Problem zaczyna się w ostatniej linijce kodu ,bo nie potrafie zrozumieć czemu wartości z tablicy są równe odpowiednio 3,5,7. Czy dobrze zanalizowałem ten kod? Jeżeli nie to prosze o poprawienie mnie. Dziekuje i pozdrawiam :)

1 odpowiedź

0 głosów
odpowiedź 20 listopada 2015 przez Krawiec91 Pasjonat (19,600 p.)
Dwa razy inkrementujesz tab[2], więc ostatecznie tab[2] jest równe 7.
Raz inkrementujesz tab[1], otrzymujesz na końcu, tab[1]=5.
Elementu tab[0] nie modyfikowałeś w programie, więc ma wartość, taką jaką mu nadałeś podczas inicjalizacji tablicy tab, czyli 3.

Podobne pytania

0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 9 kwietnia 2020 w C i C++ przez XiverKi Bywalec (2,050 p.)
0 głosów
1 odpowiedź 816 wizyt
pytanie zadane 29 stycznia 2019 w C i C++ przez Giero112 Nowicjusz (170 p.)
0 głosów
2 odpowiedzi 487 wizyt
pytanie zadane 21 marca 2018 w C i C++ przez Saddre Nowicjusz (240 p.)

93,720 zapytań

142,640 odpowiedzi

323,264 komentarzy

63,268 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...