Maison > développement back-end > C++ > le corps du texte

Quelle est la différence entre « void * » en C et C++ ?

PHPz
Libérer: 2023-09-02 13:17:02
avant
921 Les gens l'ont consulté

在C和C++中,“void *”有什么区别?

Dans cette section, nous verrons le pointeur de vide et Pointeur nul en C++. Ce sont tous deux des pointeurs vides, mais en C, un pointeur vide peut être En C++, nous ne pouvons lui attribuer aucun type de pointeur, mais en C++, nous devons le faire Conversion de type explicite pour l'affectation.

Dans l'exemple suivant, lorsque nous écrivons du code, nous pouvons exécuter ces lignes Le code est en C.

void *p;
int *int_ptr = p;
Copier après la connexion

Cela fonctionne bien en C. Maintenant, si nous utilisons malloc() pour allouer de l'espace mémoire, nous Il est possible d’utiliser une conversion de type explicite, mais si ce n’est pas le cas, pas de problème. Le malloc() La fonction renvoie un pointeur nul.

int *int_ptr = malloc(sizeof(int) * 10);
Copier après la connexion

Le pointeur void renvoyé ici est implicitement converti en un pointeur de type entier.

Maintenant, si nous voulons exécuter le même programme en C et C++, nous devons expliciter la conversion de type aiguille.

void *p;
int *int_ptr = (int *) p;
int *arr_ptr = (int *) malloc(sizeof(int) * 10);
Copier après la connexion

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:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal