Heim >Backend-Entwicklung >C++ >Warum ändern Klammern in C-Variablendeklarationen den Typ nicht?

Warum ändern Klammern in C-Variablendeklarationen den Typ nicht?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 02:09:02541Durchsuche

Why Do Parentheses in C   Variable Declarations Not Change the Type?

Klammern in C-Variablendeklarationen

Beachten Sie den folgenden Code:

<code class="cpp">int main() {
    int(s);
}</code>

Die Verwendung von Klammern um die Variable Deklaration int(s); kann unerwartet sein, da dadurch eine gültige Variable mit dem Namen s erstellt wird. Dieses Verhalten ist auf einen bestimmten Teil des C-Standards zurückzuführen, der als „Meaning of Declarators Rule“ bekannt ist und in [dcl.meaning] zu finden ist.

Gemäß dieser Regel ist der Typ der Variablen, wenn Klammern eine Deklaration einschließen Die Deklaration bleibt unverändert. In Ihrem Beispiel ist s ein Deklarator, und wenn Sie ihn in Klammern setzen, ändert sich weder sein Typ noch seine Bedeutung.

Mit dieser Funktion können komplexere Deklarationen erstellt werden. Es kann beispielsweise zwischen einem Array von Zeigern und einem Zeiger auf ein Array unterscheiden:

<code class="cpp">int * a [10];     // a is an array of ten pointers to int.
int ( * b ) [10]; // b is a pointer to an array of ten ints.</code>

Das obige ist der detaillierte Inhalt vonWarum ändern Klammern in C-Variablendeklarationen den Typ nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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