|
| Spørgsmål ang. Pointers Fra : JS |
Dato : 20-11-04 22:53 |
|
Jeg prøver at forstå anvendelse af pointers.
hvis nu:
int x = 1, y = 2;
int *ip;
ip = &x;
y = *ip; (y er nu ligmed 1)
kan man så ikke konkludere at idet ip = &x som er ligmed 1, så må *ip være
ligemed 1?
altså mere kortfattet, kan man på baggrund af ovenstående slutte:
*ip = 1
--
Mvh
Johs
| |
Bertel Brander (20-11-2004)
| Kommentar Fra : Bertel Brander |
Dato : 20-11-04 23:42 |
|
JS wrote:
> Jeg prøver at forstå anvendelse af pointers.
>
> hvis nu:
>
> int x = 1, y = 2;
> int *ip;
>
> ip = &x;
> y = *ip; (y er nu ligmed 1)
>
> kan man så ikke konkludere at idet ip = &x som er ligmed 1, så må *ip være
> ligemed 1?
>
> altså mere kortfattet, kan man på baggrund af ovenstående slutte:
>
> *ip = 1
Jo, hvis ip peger på x (som er 1) vil *ip være 1.
--
"I learned more from a three minute record
than I ever learned in school"
- Bruce Springsteen
| |
JS (20-11-2004)
| Kommentar Fra : JS |
Dato : 20-11-04 23:58 |
|
--
Mvh
Johs
"Bertel Brander" <bertel@post4.tele.dk> skrev i en meddelelse
news:419fc81b$0$201$edfadb0f@dread11.news.tele.dk...
> JS wrote:
> > Jeg prøver at forstå anvendelse af pointers.
> >
> > hvis nu:
> >
> > int x = 1, y = 2;
> > int *ip;
> >
> > ip = &x;
> > y = *ip; (y er nu ligmed 1)
> >
> > kan man så ikke konkludere at idet ip = &x som er ligmed 1, så må *ip
være
> > ligemed 1?
> >
> > altså mere kortfattet, kan man på baggrund af ovenstående slutte:
> >
> > *ip = 1
>
> Jo, hvis ip peger på x (som er 1) vil *ip være 1.
Hvis vi nu antager at x har adresse 100 og værdien 1.
Hvis man bare skrev ip = &x; så ville ip pege på adressen istedet for
indholdet af x ik'?
Altså for at få indholdet af x skal man bruge *.
| |
Bertel Brander (21-11-2004)
| Kommentar Fra : Bertel Brander |
Dato : 21-11-04 00:19 |
|
JS wrote:
>>Jo, hvis ip peger på x (som er 1) vil *ip være 1.
>Hvis vi nu antager at x har adresse 100 og værdien 1.
>Hvis man bare skrev ip = &x; så ville ip pege på adressen
>istedet for indholdet af x ik'?
ip peger ikke på en adresse, ip indeholder en adresse,
lige som x indeholder et tal (1 i dit eksempel).
I dit eksempel vil ip være 100 (kan udskrives med %p og printf).
>Altså for at få indholdet af x skal man bruge *.
For at få indholdet af det en pointer peger på skal man bruge
*ip
*ip betyder indholdet af det som ip peger på.
(Man skal ikke starte sine indlæg med "-- ", nogle email
programmer (f.ex. mit) fjerner det efter "-- " når man trykker
reply.)
--
"I learned more from a three minute record
than I ever learned in school"
- Bruce Springsteen
| |
|
|