Jestem dopiero co po przeczytaniu rozdziału o wskaźnikach. Postanowiłem sobie robić taki program do testowania jak co wygląda, są to na razie tylko początkowe lekcje ale już mam problem.
#include <iostream>
using namespace std;
void funkcja( int k);
void funkcja2( int *cel);
void fun( int *kkk );
int *wsk2 , *wsk3;
void fun2( int hh );
int *wsk4 , *wsk5;
int main()
{
int i = 5;
int *wsk = &i; //OK
int w = 10;
funkcja( i ); //OK
funkcja2( wsk ); //OK
for (int l = 0 ; l < 1 ; l++ )
{
fun(wsk);
cout << "wartosc 1 wsk2 " << *wsk2 << endl; //pokazuje5
cout << "wartosc 2 wsk3 " << *wsk3 << endl; // pokazuje adres
}
for (int f = 0 ; f < 1 ; f++ )
{
fun2(w);
cout << "wartosc 1 wsk4 " << *wsk4 << endl; //pokazuje 10
cout << "wartosc 2 wsk5 " << *wsk5 << endl; //pokazuje 1
}
cout << "wartosc 1 wsk2 " << *wsk2 << endl; //pokazuje 5
cout << "wartosc 2 wsk3 " << *wsk3 << endl; //pokazuje 1
return 0;
}
void funkcja( int k)
{
cout << "COS TAM " << k << endl; //OK
}
void funkcja2( int *cel)
{
cout << "wartość " << *cel << endl; //OK
}
void fun( int *kkk )
{
wsk2 = kkk;
wsk3 = kkk + 2; //pokazuje adres nie wartość
}
void fun2( int hh )
{
wsk4 = &hh;
wsk5 = &hh + 2;
}
Moje pytanie to dlaczego jak wypisuje drugi raz wartość *wsk3 to pokazuje inne wartości i dlaczego wsk5 = &hh + 2 daje 1 a nie 12.