Hi, habe folgenden Funktionskopf: int getc_count( const char * const path, size_t * const result ); [Funktion soll ne Dateigröße ermitteln] von: http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht7Ht/c_faq_de Was ich nicht verstehe, warum ein const mehr? Was ist der Unterschied zwischen: const char * const path und const char * path ?
Gast
#445621
1 | |
ist ein Zeiger auf eine Konstante, während
1 | |
ein konstanter Zeiger auf eine Konstante ist. Im ersten Fall ist also der Zeiger selbst nicht konstant, sondern nur der Wert, auf den er zeigt.
Bin ich vielleicht gerad drauf gekommen? Wird das so zerlegt? const char * const path const char * ---> Pointer, der KONSTANT nur auf eine Adresse zeigen darf (keine andere Ausrichtung möglich) const path ---> in path darf der referenzierte String nicht geändert werden?
johnny.m wrote:
>1 | |
2 | |
> ist ein Zeiger auf eine Konstante, während >
1 | |
2 | |
> ein konstanter Zeiger auf eine Konstante ist. > > Im ersten Fall ist also der Zeiger selbst nicht konstant, sondern nur > der Wert, auf den er zeigt. Danke, johnny.m, hatte ich also doch nicht richtig rum gedacht :)
Gast
#445701
Faustregel: C-Deklarationen von hinten lesen, dann versteht man sie. Also wird im ganzen Satz aus "const char * const path": path ist ein konstanter Pointer, der auf einen char zeigt, welcher konstant ist.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.