Heim > Backend-Entwicklung > C++ > \'const int\' vs. \'int const\': Was ist der Unterschied zwischen C und C?

\'const int\' vs. \'int const\': Was ist der Unterschied zwischen C und C?

DDD
Freigeben: 2024-10-28 13:50:30
Original
763 Leute haben es durchsucht

Funktionsparameter in C und C: 'const int' vs. 'int const'

Zwei ähnliche Funktionsparameterdeklarationen in C und C sind 'const int' und 'int const'. Obwohl sie identisch erscheinen mögen, gibt es einen subtilen Unterschied zwischen den beiden.

Const-Deklarationen in C

In C impliziert die Deklaration von „const int“, dass die Die als Parameter übergebene Variable ist konstant, d. h. ihr Wert kann innerhalb der Funktion nicht geändert werden. Der Wert, der als Argument an diesen Parameter übergeben wird, kann jedoch eine Konstante oder eine Variable sein.

Beispiel:

<code class="c">int testfunc1 (const int a)
{
  // a is constant within the function, but the argument can be variable.
}</code>
Nach dem Login kopieren

Const-Deklarationen in C

In C folgt 'int const' den gleichen Regeln wie in C, aber 'const int' hat eine zusätzliche Interpretation. Dies impliziert auch, dass die Variable mit einem konstanten Wert initialisiert wird, der innerhalb der Funktion nicht geändert werden kann.

Beispiel:

<code class="cpp">int testfunc2(int const a)
{
  // Both a and the argument must be constants.
}</code>
Nach dem Login kopieren

Lesetrick für Deklarationen

Um den Unterschied besser zu verstehen, besteht ein hilfreicher Trick darin, die Deklaration rückwärts zu lesen:

  • 'const int' liest sich als „a ist eine ganze Zahl, die konstant ist“
  • 'int const' liest sich als „a ist eine konstante Ganzzahl“

Auswirkungen

Beide Deklarationen weisen darauf hin, dass der übergebene Wert nicht sein kann innerhalb der Funktion geändert werden. Die Initialisierungsanforderung in C (für 'const int') fügt jedoch eine zusätzliche Einschränkung hinzu.

Beispiel:

<code class="cpp">const char *s;      // s is a pointer to a char that is constant
char *const t = &c; // t is a constant pointer to a char</code>
Nach dem Login kopieren

In diesem Fall ist der Wert von ' s‘ kann sich ändern (da es ein Zeiger ist), der Wert von ‚t‘ jedoch nicht.

Das obige ist der detaillierte Inhalt von\'const int\' vs. \'int const\': Was ist der Unterschied zwischen C und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage