Zeiger -> const
-
main abendi

beim const tu ich mir noch ein wenig schwer
also nur so als frage..wenn ..
int ival = 1024; const int *ival = &ival;... steht,darf der wert ja nicht geändert werden oda?
und bei ..
const int ival = 1024; const int *const ram = &ival;... muss es halt so stehen.
aber beim zweiten: warum kommt da const zweimal vor?
und warum muss die obere intialisierung auch mit const beginnen,obwohl beim ersten beispiel dort kein const hinmusste?so ich schau dann morgen hier nochmal hinein
schöne nacht an alli die das lesen *g*
no noob

-
Beim zweiten darf der Zeiger selbst auch nicht geändert werden, soll heisen auf nichst anderes Zeigen.
grüße
-
ich wuerde dir folgendes empfehlen:
beim deklarieren von konstanten, schreib den typ den du konstant machen willst immer vor dem const:z.B.
int const - fuer einen konstanten integer.das hilft dir speziell bei pointern.
z.B.
char const* - heisst du hast einen pointer auf konstante char's
char* const - du hast einen konstanten pointer auf char's
const char* const - du hast einen konstanten pointer auf konstante char'smit diesem system kannst du viel leichter erkennen was konstant ist.
- georg
-
GeorgV schrieb:
...
const char* const ...Schwupps - und schon ist es ihm selbst passiert....

Den Tipp an sich finde ich aber sehr gut und schreibe auch seitdem
char const * const
Gruß,
Simon2.
-
Simon2 schrieb:
GeorgV schrieb:
...
const char* const ...Schwupps - und schon ist es ihm selbst passiert....

char const * const
hoeppla. stimmt natuerlich.
-
Ja, "const char*" ist wie eine Seuche die man nicht los wird. Ist mir selber schon oft passiert. Verdammt!

-
const_cast
-
DaGibtsDoch schrieb:
const_castEs gibt auch "reinterpret_cast" ... und "void*", mit dem man eigentlich alles machen kann - und wem das zu schwer wird, nutzt asm.
Gruß,
Simon2.
-
Äh, nein, so meinte ich das nicht. Ich meinte "const char*" statt "char const*" zu schreiben ist eine Seuche. Bloss "const char*" ist schon so ins Blut übergegangen dass ich es oft noch schreibe, wo ich doch schon vor längerer Zeit von "const T*" auf "T const*" umgestiegen bin.
"const_cast" hab ich bis jetzt wirklich kaum irgendwo gebraucht. An 1-2 Stellen wo ich nen "T const*" hab und ne doofe API nicht const Korrekt ist (OpenFile(char* fileName) und so scheiss), wobei ich da z.T. schon dazu übergehe einfach ne Kopie zu machen - kommt kaum wo vor wo Performance interessant wäre.
-
Plotzenhotz schrieb:
...Ich meinte "const char*" statt "char const*" zu schreiben ist eine Seuche....
Hatte ich auch so verstanden und stimme Dir vollkommen zu. Geht mir auch so - immer wieder entdecke ich in meinem Code (auch in ganz aktuellem) ein "const typ" ... gräßlich !
Hat sich ähnlich eingebürgert, wie "Internetschrift" (mit "ned", "jez", Weglassen von Großschreibung und Satzzeichen, ....). Irgendwann hat man's so oft gesehen, dass es einem gar nicht mehr auffällt.Mein Post bezog sich nur auf "DaGibtsDoch's" const_cast ....
Ich denke, wer das wirklich braucht, hat entweder nicht richtig nachgedacht oder mit "Alt- oder Fremdbeständen" (wo dann andere nicht richtig nachgedacht haben
) z kämpfen.Gruß,
Simon2.