Maison >développement back-end >C++ >Pourquoi ne puis-je pas utiliser une variable pour définir la taille d'un tableau en C ?

Pourquoi ne puis-je pas utiliser une variable pour définir la taille d'un tableau en C ?

DDD
DDDoriginal
2024-10-29 06:12:031004parcourir

Why Can't I Use a Variable to Define an Array Size in C  ?

Const Int as Array Size: Conditional Allowance

Malgré les deux exemples impliquant l'utilisation d'un const int pour spécifier la taille d'un tableau, seule la première expression est autorisée en C . La raison de cet écart réside dans la sémantique des deux expressions.

La première expression, const int size = 2, est une expression constante, ce qui signifie que sa valeur peut être entièrement évaluée pendant compilation. Cela permet au compilateur de déterminer la taille du tableau au moment de la compilation, lui permettant ainsi de réserver la quantité de mémoire appropriée.

En revanche, la deuxième expression, const int size = a, représente un non -expression constante car a est une variable mutable. Par conséquent, le compilateur ne peut pas garantir la valeur de size jusqu'à l'exécution, ce qui rend impossible l'allocation du tableau lors de la compilation.

Cette distinction met en évidence l'importance du « type d'expression » en C . L'utilisation d'une expression non constante comme taille de tableau exclut la réservation de mémoire au moment de la compilation, car le compilateur ne peut pas déterminer la taille requise sans exécuter le programme. Cette limitation est une conséquence des règles strictes et de la complexité de l'analyse de flux, qui est le processus de détermination des valeurs des variables au moment de l'exécution.

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