Witam :)
problem występuje w poniższym kodzie:
#include <iostream>
using namespace std;
int wskaznik(int *w)
{
*w++;
return *w;
}
int main()
{
int *a;
int b = 200;
a = &b;
cout << wskaznik(a) << endl;
cout << b;
return 0;
}
Na wyjściu w konsoli mam takie wartości:
2686728
200
Spodziewałem się wyniku:
201
201
Wystarczy że dokonam drobnej modyfikacji i w funkcji wskaznik zamienię *w++ na ++*w i otrzymuję to o co mi chodziło. I tu jest moje pytanie. Dlaczego program zachowuje się tak dziwnie i w przypadku postinkrementacji w ogóle nie zwiększa wartości zmiennej b, natomiast wskaźnik przestawia się na jakąś przypadkową wartość?