Maison > développement back-end > C++ > Pourquoi ne puis-je pas attribuer directement des tableaux en C et C, mais je peux le faire dans les structures ?

Pourquoi ne puis-je pas attribuer directement des tableaux en C et C, mais je peux le faire dans les structures ?

Mary-Kate Olsen
Libérer: 2024-12-05 20:08:15
original
732 Les gens l'ont consulté

Why Can't I Directly Assign Arrays in C and C  , But I Can Within Structs?

Assignation de tableaux en C et C

C et C permettent l'affectation de tableaux par membre dans les structures mais pas en général. Ce comportement est le résultat de l'évolution historique des langages.

Initialement, les tableaux en C étaient modélisés comme des pointeurs en mémoire, appelés « tableaux cuits ». Lorsque les structures ont été introduites, les tableaux au sein des structures ont été traités différemment pour garantir la sécurité de la mémoire. Cela permettait d'attribuer des tableaux par membre au sein des structures sans compromettre la compatibilité avec le code existant.

En revanche, l'affectation de tableaux en dehors des structures n'était pas prise en charge dans la conception originale de C. Cela était dû à des préoccupations concernant le rebasage du pointeur et au manque d'informations sur la taille des tableaux déclarés comme paramètres de fonction. Pour éviter d'introduire des bogues et des problèmes de compatibilité, l'affectation explicite à l'aide de memcpy a été préférée.

Cependant, comme l'a noté Luther Blissett, la spécification de C concernant l'affectation de structure permet explicitement l'affectation par membre des tableaux contenus. Il s'agissait d'un effet secondaire involontaire de la conception, mais il a été adopté comme un moyen de faciliter la copie de données au sein des structures sans rompre les modèles établis.

Par conséquent, la prise en charge de l'affectation des tableaux par membre au sein des structures, mais pas généralement, est un héritage des premières décisions de conception du C et de l'évolution ultérieure du langage, aboutissant à une distinction entre les tableaux intégrés dans des structures et les tableaux utilisés indépendamment.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal