Heim > Artikel > Backend-Entwicklung > „const int' vs. „int const' in C und C: Sind sie wirklich gleich?
Bei der Deklaration von Funktionsparametern mit const ist es wichtig, zwischen 'const int' und 'const int' zu unterscheiden ' und 'int const'. Obwohl sie identisch erscheinen mögen, ändert die Reihenfolge der Modifikatoren die Interpretation der Deklaration.
'const int' deklariert eine Variable, die konstant ist (nicht geändert werden kann) und vom Typ int ist. Der Schwerpunkt liegt hier auf dem Qualifikationsmerkmal const, das auf die Variable angewendet wird.
'int const' hingegen deklariert a Variable vom Typ int und auch konstant. In diesem Fall ändert der const-Qualifizierer den Typ, nicht die Variable.
Sind diese beiden Funktionen also identisch?
<code class="c">int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; }</code>
Ja, sie sind gleichwertig.Das Rückwärtslesen der Deklaration verdeutlicht dies.
Für 'const int':
Für „int const“:
In beiden Fällen ist „a" sowohl eine Ganzzahl als auch eine Konstante.
Der Trick des Rückwärtslesens wird jedoch bei komplexen Deklarationen von unschätzbarem Wert:
<code class="c">// "s" is a pointer to a char that is constant const char *s; // "t" is a constant pointer to a char char *const t = &c; // The char in "s" is constant, so you can't modify it *s = 'A'; // Can't do // The pointer in "s" is not constant, so you can modify it s++; // Can do // The char in "t" is not constant, so you can modify it *t = 'A'; // Can do // The pointer in "t" is constant, so you can't modify it t++; // Can't do</code>
Denken Sie daran, dass in C const-Datenelemente entweder in der Klassendeklaration oder im Konstruktor initialisiert werden können. Während in C const-Datenelemente als symbolische Konstanten betrachtet werden und in der Deklaration initialisiert werden müssen, sind sie #define sehr nahe.
Das obige ist der detaillierte Inhalt von„const int' vs. „int const' in C und C: Sind sie wirklich gleich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!