/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
for(;;) vha pointers ?
Fra : aslak


Dato : 03-05-01 21:24

Kan man lave en for lykke vha pointers?

Jeg tænkte på noget lignende;

int* i;
*i=0;
for( *i ; *i<SOME_NUM ; i++)
{
[gør et eller andet...]
}

Om det kan lade sig gøre eller ej, det ved jeg ikke! Hvad med dig?



 
 
Morten Boysen (03-05-2001)
Kommentar
Fra : Morten Boysen


Dato : 03-05-01 21:35

"aslak" <familienkjaer@mail1.stofanet.dk> wrote in message
news:9csemh$isb$1@sunsite.dk...
> Kan man lave en for lykke vha pointers?

Det kan man sagtens.

> Jeg tænkte på noget lignende;
>
> int* i;
> *i=0;
> for( *i ; *i<SOME_NUM ; i++)
> {
> [gør et eller andet...]
> }

Det ovenstående vil ikke virke efter hensigten. Jeg tror du mener:

for ( ; *i < SOME_NUM ; (*i)++)

I dit eksempel inkrementeres pointeren til at pege på den næste værdi.
Jeg gå ud fra, at det er værdien, som pointeren peger på, der skal
inkementeres.


--
Morten Boysen



John Mørck Hansen (03-05-2001)
Kommentar
Fra : John Mørck Hansen


Dato : 03-05-01 23:22

"aslak" <familienkjaer@mail1.stofanet.dk> skrev

> Kan man lave en for lykke vha pointers?
>
> Jeg tænkte på noget lignende;
>
> int* i;
> *i=0;
> for( *i ; *i<SOME_NUM ; i++)
> {
> [gør et eller andet...]
> }

Det kan saktens lade sig gøre. Men for at starte med starten så tror jeg
lige vil sige noget om pointers.

En pointer en 'adresse peger' det vil sige at følgende er en defination af
en pointer.

int i = 8;
int *p = &i;

( *p == i )
( p == &i )

Det vil så sige, at hvis du vil have fat i værdien 8 igennem pointeren *p så
må du bruge operatoren *. Så værdien af *p er 8, og værdien af pointeren 'p'
er adressen på variablen 'i'.

Så når alt kommer til alt, så det eneste der var galt med dit lille kode
eksempel er, at du skal bruge *i hver gang du vil bruge værdien af variablen
'i', for ellers ændre du adressen hvor pointeren 'p' peger.

for( *i = 0; *i < max_num; *i++ )
...


(John =








Morten Boysen (03-05-2001)
Kommentar
Fra : Morten Boysen


Dato : 03-05-01 23:46

"John Mørck Hansen" <adilock@it.dk> wrote in message
news:9cslnu$1fd3$1@news.cybercity.dk...
> Så når alt kommer til alt, så det eneste der var galt med dit lille
kode
> eksempel er, at du skal bruge *i hver gang du vil bruge værdien af
variablen
> 'i', for ellers ændre du adressen hvor pointeren 'p' peger.
>
> for( *i = 0; *i < max_num; *i++ )

Det gør han alligevel. ++ har højere pæcedens end *, så det er pointeren
der ændres på i det eksempel.


--
Morten Boysen



Rasmus Christensen (04-05-2001)
Kommentar
Fra : Rasmus Christensen


Dato : 04-05-01 06:43

John Mørck Hansen <adilock@it.dk> wrote in message
news:9cslnu$1fd3$1@news.cybercity.dk...
[...]
> Så når alt kommer til alt, så det eneste der var galt med dit lille kode
> eksempel er
[...]

Jeg ville også lige foretrække at skyde en "i = new int;" ind et eller andet
sted imellem de to statements:

int* i;
*i=0;

Det gør eksemplet lidt mere stabilt

Mvh
Rasmus



John Mørck Hansen (05-05-2001)
Kommentar
Fra : John Mørck Hansen


Dato : 05-05-01 12:54

"Rasmus Christensen" <riverwind@mail.tele.dk> skrev
> Jeg ville også lige foretrække at skyde en "i = new int;" ind et eller
andet
> sted imellem de to statements:
>
> int* i;
> *i=0;
>
> Det gør eksemplet lidt mere stabilt

Andet kan man ikke sige *SSS*

Men det var jo ikke et program jeg skrev... det var bare et eksempel på en
for lykke med pointer.


(John =



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste