Witam. Mam taki o to kod:
#include <iostream>
using namespace std;
int main(){
typedef unsigned short int USHORT;
USHORT myAge;//zmienna
USHORT *pAge=0;//wskaznik
myAge=5;
cout<<"myAge: "<<myAge<<endl;
pAge=&myAge;
cout<<"*pAge: "<<*pAge<<endl<<endl;
cout<<"Ustawiam *pAge=7..."<<endl;
*pAge=7;
cout<<"*pAge: "<<*pAge<<endl;
cout<<"myAge: "<<myAge<<endl<<endl;
cout<<"Ustawiam myAge = 9..."<<endl;
myAge=9;
cout<<"myAge: "<<myAge<<endl;
cout<<"*pAge: "<<*pAge<<endl;
return 0;
}
I rozchodzi mi się o linijkę: pAge=&myAge;
Dlaczego nie *pAge=&myAge?
Wprawdzie wcześniej został zainicjalizowany wskaźnik *Age=0;
Ale odpowiedni efekt również by dało rozwiązanie: USHORT * pAge=&myAge;
Więc czemu nie może być **pAge=&myAge;*, tylko musi być to bez gwiazdki?
pAge bez gwiazdki wygląda jak zwykła zmienna, a nie wskaźnik którym ma być.
Tak jakby do jednej zmiennej był przypisany adres innej zmiennej, a nie do wskaźnika który ma wskazywać na tą drugą zmienną.
Nie wiem czy dobrze wytłumaczyłem o co mi chodzi. Trochę się pogubiłem w tym temacie z wskaźnikami i adresami.
Mam nadzieję, że udało mi się odpowiednio nazwać wątek, i nie wyląduje w koszu.