Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
#include <stdio.h>
main()
{
int i,*pi,*pj;
i=9;
printf("nPo przypisaniu wartosci i = 9n");
printf("&pi = %p, &pj = %p, &i = %pn",&pi,&pj,&i);
printf("pi = %p, pj = %p, i = %dn",pi,pj,i);
printf("*pi = %d, *pj = %dn",*pi,*pj);
}
Bardzo prosze o napisanie komentarzy do lini z "print'ami ",bo bedzie mi to baaardzo pomocne w zrozumieniu wskaźników.
To jest program w zwyklym C , nie w c++.
Offline
A w czym to jest? Bo mi wyglada na C ale nie jestem pewien. Żeby przystosować to do C++ zmieniłem tylko nagłówek ale i tak błędy mi wyskoczyły. Na pewno masz to dobrze? Jak chcesz moge Ci wytłumaczyć z czym sie je wskaźniki, ale na jakimś mniej zagmatwanym i prostszym przykładzie :]
A w czym to jest? Bo mi wyglada na C ale nie jestem pewien. Żeby przystosować to do C++ zmieniłem tylko nagłówek ale i tak błędy mi wyskoczyły. Na pewno masz to dobrze?
a mi sie ladnie skompilowalo i uruchomilo:
Po przypisaniu wartosci i = 9 &pi = 0xbffff980, &pj = 0xbffff97c, &i = 0xbffff984 pi = 0xb8000540, pj = 0xb7fd1e80, i = 9 *pi = -1208053760, *pj = 1252744
Offline
co do wskaznikow:
jesli:
int *c;
jest jego definicja to:
*c
- obiekt pokazywany przez wskaznik (wartosc)
&c
- adres obiektu
jesli sie myle, to mnie poprawcie.
Offline
To jest program w zwyklym C , nie w c++.
Zawsze mnie bawią takie stwierdzenia. A to C++ już jest niezwykłe? C++ jest uważany za język bardziej uniwersalny i łatwiejszy przy nawet lepszym działaniu.
Co do tego co rybek napisał:
... int b = 10; int *c; //deklaracja wskaźnika c = &b; // przypisanie adresu zmiennej b do wskaźnika cout << (*c); // wyświetlenie że *c = 10 ...
Może to to samo ale mi się wydaje że prościej napisałem (nie cierpiew tych terminów tylko zaciemniją to co najważniejsze, cztyli samo programowanie :P
Kod:
&c- adres obiektu
Ściślej - adres wskaźnika (który też jest obiektem, ale tak na wszelki wypadek..)
Pozdrawiam,
a żeby jeszcze uściślić: to daje ci adres zmniennej (obiektu wskaźnikowego) wskaźnikowej do zmniennej (obiektu) zalokowanego gdzieś w pamięci. Wsakźnik i zmnienna muszą być tego samego typu (no chyba że mówimy o wskaźnikach typu void, te mogą wskazywać na dowolną zmnienna (obiekt))
Powinny być tego samego typu, co nie znaczy, że nie da się trzymać adresu do inta we wskaźniku char*, ale to proszenie się o kłopoty ;)
Pozdrawiam,
Offline
chyba, że chce się zrobić coś ala pseudo rzutowanie :]