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/.

Członek DUG


#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 :]
Członek DUG

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
Członek DUG

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
Członek DUG
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))
Członek DUG
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 :]