Maison >développement back-end >C++ >Pourquoi les parenthèses se compilent-elles sans erreurs dans les déclarations de variables en 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!