11 Stimmen

Deklaration von Zeigern in C++

Was ist in C++ der Unterschied zwischen char const *ptr=&ch; et const char *ptr=&ch;

1 Stimmen

Es gibt keinen Unterschied, für weitere Informationen : duramecho.com/ComputerInformation/WarumCppConst.html

1 Stimmen

Mögliche Duplikate von stackoverflow.com/questions/2211954/

32voto

Paul R Punkte 201623

Sie sind identisch, d.h. pointer to const char .

Allerdings char * const ptr ist anders, da er ein const pointer to (non-const) char .

Und um das Set zu vervollständigen, const char * const ptr es un const pointer to const char .

7voto

Alexey Malistov Punkte 25541

Kein Unterschied in C++.

Es ist wichtig const ist vor * oder nach * .

6voto

John Smith Punkte 4285

Konst gilt für alles, was sich unmittelbar links von ihm befindet (außer wenn sich dort nichts befindet; in diesem Fall gilt es für alles, was sich unmittelbar rechts von ihm befindet). Es gibt also keinen Unterschied.

char * const ptr wäre allerdings ein Konstantenzeiger auf einen Variablenwert.

2voto

Greg Howell Punkte 1815

Andere Antworten haben sich mit der technischen Lösung befasst - Ihre beiden Beispiele sind die gleichen.

Viele Menschen ziehen es vor, von rechts nach links zu lesen, wenn es um const in C++. Im Englischen denken wir gerne an eine Konstante X, während C++ gerne ein X const parst. Wenn man von rechts nach links liest, erhält man ein englischeres Ergebnis.

Ein ziemlich extremes Beispiel:

C const * bar(A * const, B const * const) const;

Von rechts nach links liest sich dies wie "Eine konstante Funktion bar die als Parameter einen konstanten Zeiger auf eine A und einen konstanten Zeiger auf eine Konstante B und liefert einen Zeiger auf eine Konstante C '. Beachten Sie, dass alle drei Arten von Zeigern unterschiedlich sind.

0voto

cpx Punkte 16132

char const *ptr=&ch; y const char *ptr=&ch; bedeutet, dass char konstant ist, während der Zeiger variabel ist (oder geändert werden kann).

Aber im Falle von char * const ptr Sie können den Zeiger nicht neu zuweisen, wenn Sie ihn einmal gesetzt haben, also ist er ein konstanter Zeiger auf eine Zeichenfolge.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X