Maison >développement back-end >C++ >Pourquoi les parenthèses se compilent-elles sans erreurs dans les déclarations de variables en C ?

Pourquoi les parenthèses se compilent-elles sans erreurs dans les déclarations de variables en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 02:02:28715parcourir

Why Do Parentheses Compile Without Errors in Variable Declarations in C  ?

Déclaration des variables entre parenthèses en C

Le code suivant soulève une question intéressante :

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

Pourquoi la déclaration de s entre parenthèses compile sans erreurs ?

Explication

Selon [dcl.meaning] dans le standard C :

"Dans un déclaration T D où D a la forme ( D1 ), le type de l'identifiant du déclarant contenu est le même que celui de l'identifiant du déclarant contenu dans la déclaration T D1."

Simplifié, les parenthèses ne modifient pas le type de l'identifiant déclaré mais peut affecter la liaison des déclarateurs complexes.

Exemple

Dans le code fourni, s est un déclarateur. Par conséquent, les parenthèses peuvent être utilisées sans modifier leur signification :

<code class="cpp">int(s) // Equivalent to int s</code>

Exemple avancé

Les parenthèses s'avèrent particulièrement utiles dans des scénarios plus complexes :

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

Ces distinctions sont essentielles pour garantir une allocation et un référencement corrects de la mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn