Void-Zeiger in C++
Dieser Artikel behandelt die Verwendung von void*
-Zeigern in C++. Ein Beispielcode wird ebenfalls bereitgestellt, um seine Implementierung zu demonstrieren.
Implementieren Sie den void*
-Zeiger in C++
Wir haben untersucht, dass der Zeiger denselben Datentyp haben sollte, auf den er zeigt, wie in der Zeigerdeklaration angegeben. Wenn wir einen Float-Zeiger deklarieren, kann er nicht auf andere Datentypen wie int, long oder string zeigen; es kann nur auf eine Variable vom Typ Float zeigen.
C/C++ hat eine Lösung entwickelt, um dieses Problem zu überwinden - den void*
-Zeiger. Ein void*
-Zeiger ist ein Allzweckzeiger, der ohne statische
Zeigerdefinition auf jeden Datentyp zeigen kann.
Einem void*
-Zeiger können Sie die Adresse eines beliebigen Datentyps zuweisen. Ebenso kann der void*
-Zeiger jedem Datentyp von Zeigern zugewiesen werden, ohne sie explizit zu typisieren.
Syntax:
void *pointerName;
void *ptr;
Die Verwendung von void*
-Zeigern in C++ hat zwei Hauptnachteile:
- Aufgrund der konkreten Größe ist eine Pointer-Arithmetik mit dem
void*
-Pointer in C++ nicht möglich. - Sie können einen
void*
-Zeiger nicht dereferenzieren.
Größe des void*
-Zeigers in C++
Die Größe des void*
-Zeigers ist ähnlich der Größe des Zeigers des Zeichentyps in C++. Der Zeiger speichert die Speicheradresse, die auf einige Daten im Programm zeigt.
Dieser Zeiger in C++ hängt von Ihrer Computerplattform ab. Auf einer 32-Bit-Plattform benötigen Sie 4 Bytes oder 32 Bits, um die Speicheradressdaten zu speichern.
Die Funktion sizeof()
kann die Grösse des Zeigers ermitteln.
Syntax:
void *ptr = NULL; // void pointer
sizeof(ptr);
Beispielcode:
#include
#include
using namespace std;
int main() {
void *ptr = NULL; // void pointer
int *p = NULL; // integer pointer
char *cp = NULL; // character pointer
float *fp = NULL; // float pointer
// size of pointers
cout
Grund für die Verwendung von void*
-Zeigern in C++-Programmen
Wir verwenden den void*
-Zeiger in C++, um die Probleme beim Zuweisen separater Werte zu verschiedenen Datentypen in einem Programm zu überwinden. Der void*
-Zeiger in C++ kann auf jeden Datentyp zeigen und diesen Datentyp ohne explizite Typumwandlung umwandeln.
Es hat keinen Rückgabewert. Ein void*
-Zeiger kann auf ein int, float oder char zeigen und auf diesen spezifischen Datentyp umwandeln.
Es hilft Entwicklern beim Schreiben von Code und beim Reduzieren der Komplikationen eines Programms.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn