Deklaration von Variablen in Klammern in C
Der folgende Code wirft eine interessante Frage auf:
<code class="cpp">int main() { int(s); }</code>
Warum? die Deklaration von s in Klammern ohne Fehler kompilieren?
Erklärung
Laut [dcl.meaning] im C-Standard:
"In a Deklaration T D, wobei D die Form ( D1 ) hat, ist der Typ der enthaltenen Deklarator-ID derselbe wie der der enthaltenen Deklarator-ID in der Deklaration T D1 Typ des deklarierten Bezeichners, kann sich jedoch auf die Bindung komplexer Deklaratoren auswirken.
BeispielIm bereitgestellten Code ist s ein Deklarator. Daher können Klammern verwendet werden, ohne ihre Bedeutung zu ändern:
<code class="cpp">int(s) // Equivalent to int s</code>
Klammern erweisen sich besonders in komplexeren Szenarien als nützlich:
Diese Unterscheidungen sind wichtig, um eine korrekte Speicherzuordnung und Referenzierung sicherzustellen.<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 werden Klammern in Variablendeklarationen in C fehlerfrei kompiliert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!