[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [CPROG] gets strengen



--- Anders Melchiorsen <sslug@sslug> wrote:
> Sune <sslug@sslug> wrote on 17-Aug-01:
> 
> > Det er korrekt, men det var nu heller ikke det vi diskuterede ;)
> 
> Vi startede med at snakke om sizeof, som netop er et af de få steder,
> hvor et array ikke kan bruges i stedet for en peger til første
> element.

huh?

> > > > > (Med sizeof kan man så til gengæld komme i problemer hvis linein
> > > > > ændres til en peger).
> > > > 
> > > > char linein[300];
> > > > så er linein jo en "peger" ;)
> > > 
> > > Nej, linein er et array. "char* lineout" ville være en peger
> > 
> > Faktisk ER linein en pointer, det er en pointer til et array af
> > chars.
> 
> Nej. Læs eventuelt comp.lang.c FAQ Section 6.


> At et array kan bruges i stedet for en peger til første element gør
> dog ikke et array til en peger.

Jo, lige præcis! Du opfatter variablen som "et array", det skal du ikke, det ER en
pointer det det første element i arrayet, prøv at studere det lille kodeeksemple jeg lavede.
 
> 
> > Det jeg siger er, at a er en pointer når: 
> > char a[300];
> 
> Ja, det siger du; men det er forkert. Læs og forstå Section 6 af den
> FAQ. Fx Q6.1: "The type pointer-to-type-T is not the same as
> array-of-type-T." eller Q6.9: "[...] but an array is *not* a pointer
> [...]".

Igen, jo den er! Du kan opfatte den som en slags "constant pointer". Det er korrekt at du ikke kan
sætte den til at pege på andet end det første element, og i den forstand er den jo ikke som andre
pointere, men compileren opfatter den som en pointer (til det første element i et array).
 
> > Som du kan se, så opfatter kompileren "hej" som en pointer til et array.
> 
> Rent faktisk opfatter den "hej" som en pointer til første element i et
> array. Q6.13.

Endelig;)

> At et array kan bruges i stedet for en peger til første element gør
> dog ikke et array til en peger.

?
Et array "eksisterer" faktisk ikke, det kompileren gør når du skriver fx. a[21], er noget i stil
med: gå til adressen "a", incrementer med 21 til den adresse, aflæs værdien på den adresse. 
Derfor forstår jeg ikke din sætning "..gør dog ikke et array til en peger", hvilken variabel
tænker du på når du siger "array"?


__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:09 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *