Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Wskaźniki i adresy zmiennych - zapis &zmienna, a zapis *zmienna

Ostatnio zmodyfikowano 2014-03-09 21:50
Autor Wiadomość
quatromen
Temat założony przez niniejszego użytkownika
[C++] Wskaźniki i adresy zmiennych - zapis &zmienna, a zapis *zmienna
» 2014-03-09 21:24:43
Witam
Mam problem mianowicie nie wiem jaka jest róznica między:
C/C++
cerr << & wskLicznik << "\n";
a
C/C++
cerr << * wskLicznik << "\n";
w kodzie :
C/C++
#include<iostream>
using namespace std;
int main()
{
    int Licznik;
    int * wskLicznik = & Licznik;
    * wskLicznik = 15;
    cerr << Licznik << "\n";
    cerr << wskLicznik << "\n";
    cerr << & wskLicznik << "\n";
    cerr << * wskLicznik << "\n";
}

Wyswietla dla tych dwoch opcji jakby inne adresy komórek , jaka jest róznica ?? ??
P-105956
michal11
» 2014-03-09 21:32:46
*wskLicznik zwraca wartość tego na co pokazuje wskaźnik.
&wskLicznik zwraca adres tego na co pokazuje wskaźnik.
P-105957
quatromen
Temat założony przez niniejszego użytkownika
» 2014-03-09 21:44:02
zrobiłem więc test żeby się upewnić
skoro
cyt :"&wskLicznik zwraca adres tego na co pokazuje wskaźnik."
to komendy:
C/C++
cerr << & wskLicznik << "\n";
cerr << & Licznik << "\n";
powinny pokazywac to samo a pokazuja co innego.
a dopiero samo ( bez referencji &):
C/C++
cerr << wskLicznik << "\n";
 pokazuje na adres zmiennej Licznik

Dobrze rozumuje ?
P-105959
DejaVu
» 2014-03-09 21:48:56
C/C++
#include<iostream>
using namespace std;
int main()
{
    int Licznik; //tworzysz zmienną 'Licznik'
    int * wskLicznik = & Licznik; //tworzysz wskaźnik na zmienną i przypisujesz do niego adres zmiennej 'Licznik'
    * wskLicznik = 15; //Dostajesz się do danych na które wskazuje wskaźnik, po czym modyfikujesz te dane wpisując wartość 15
    cerr << Licznik << "\n"; //wypisujesz wartość zmiennej Licznik
    cerr << wskLicznik << "\n"; //wypisujesz wartość zmiennej, czyli adres zmiennej na którą wskazuje (bo zmienna jest wskaźnikiem)
    cerr << & wskLicznik << "\n"; //wypisujesz adres zmiennej, która przechowuje wskaźnik do 'czegoś' (tym czymś jest adres do zmiennej Licznik ale nie ma to w tym wypadku znaczenia)
    cerr << * wskLicznik << "\n"; //dostajesz się do danych na które wskazuje wskaźnik
}
PS. cerr nie służy do wypisywania standardowych wartości na ekran.
P-105960
quatromen
Temat założony przez niniejszego użytkownika
» 2014-03-09 21:50:43
Dzięki ,już wszystko jasne :D
P-105961
« 1 »
  Strona 1 z 1