Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen „void *“ in C und C++?

Was ist der Unterschied zwischen „void *“ in C und C++?

PHPz
PHPznach vorne
2023-09-02 13:17:02850Durchsuche

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

In diesem Abschnitt sehen wir den Leerenzeiger und Nullzeiger in C++. Sie sind beide Void-Zeiger, aber in C kann es ein Void-Zeiger sein In C++ können wir ihm keinen Zeigertyp zuweisen, aber in C++ müssen wir das tun Explizite Typkonvertierung für die Zuweisung.

Im folgenden Beispiel können wir diese Zeilen ausführen, wenn wir Code schreiben Der Code ist in C.

void *p;
int *int_ptr = p;

Das funktioniert gut in C. Wenn wir nun malloc() verwenden, um Speicherplatz zuzuweisen, können wir Es ist möglich, eine explizite Typkonvertierung zu verwenden, aber wenn wir das nicht tun, ist das kein Problem. Die malloc() Die Funktion gibt einen Nullzeiger zurück.

int *int_ptr = malloc(sizeof(int) * 10);

Der hier zurückgegebene Void-Zeiger wird implizit in einen Zeiger vom Typ Integer konvertiert.

Wenn wir nun dasselbe Programm in C und C++ ausführen möchten, sollten wir die Typkonvertierung explizit durchführen Zeiger.

void *p;
int *int_ptr = (int *) p;
int *arr_ptr = (int *) malloc(sizeof(int) * 10);

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „void *“ in C und C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen