[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



> Det kommer som første hit på Google ved søgning på "comp.lang.c faq"
> og jeg mener da bestemt at en anden også har sendt linket i denne
> diskussion.

Nå det var den, men den har jo allerede citeret:
"
``Equivalence'' refers to the following key definition: 

An lvalue of type array-of-T which appears in an expression decays (with three exceptions) into a
pointer to its first element; the type of the resultant pointer is pointer-to-T. 

(The exceptions are when the array is the operand of a sizeof or & operator, or is a string
literal initializer for a character array.) "

 
> Men jeg kan da godt finde det for dig. Der findes forskellige udgaver
> på http://www.eskimo.com/~scs/C-faq/versions.html .
 
> > Næ, men det er jo hans mening, og den har han ret til, jeg har sendt
> > dig to andre med modsatte meninger, skal vi sige 2-1 til mig ;)
> 
> "En løgn bliver ikke sand af at blive gentaget", eller hvordan går
> mundheldet? Du finder næppe et mere troværdigt dokument end
> comp.lang.c FAQ, som tilmed henviser til relevante afsnit i lige så
> troværdige og ansete bøger.

Hvorfor skulle han være mere troværdig end nogen andre?
 
 
> > Hvis den kan opfattes som, anvendes som, og bruges af compileren som
> > en pointer, hvorledes begrunder du så at det IKKE er en pointer?
> 
> Der er ingen pointer. Der er kun et array. En pointer er en variabel
> som indeholder adressen på en anden variabel. En sådan variabel findes
> ikke når man laver et array. Figur i Q6.2.
> 
> Den pointer, du ser, skyldes at compileren implicit laver en pointer
> til det første element når du bruger et array i et udtryk. Så når du
> skriver "a" er det en kort og bekvem notation for "&a[0]", men det gør
> ikke a til en pointer.

Tjaa, jeg tror vi må erklære os uenige, alle indikationer peger i retning af en pointer:

char a[10];

*(a+3)=5;      // kan dereferences som en pointer
printf(...,a);  // en adresse

osv osv, som jeg skrev i eksemplet.

Jeg er enig i at 
char *a; 
genererer helt anden kode, så hvis det er din pointe så er jeg skam fuldkommen enig og har været
det hele tiden.
Det er nok en fortolking af hvorvidt navnet "a" er en variable type "char array" eller pointer.
Da sizeof(a) giver længden af arrayet indikerer det du har ret, men jeg opfatter det nu bare som
en af de 3 undtagelser der er fra almindelige "flytbare" pointere, og da compileren uden tøven
æder al pointer notationen, så må man (jeg;) konkludere, at compileren opfatter den som en
pointer.

-Sune

__________________________________________________
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] *