Void-Zeiger in C++

Zeeshan Afridi 12 Oktober 2023
  1. Implementieren Sie den void*-Zeiger in C++
  2. Größe des void*-Zeigers in C++
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:

  1. Aufgrund der konkreten Größe ist eine Pointer-Arithmetik mit dem void*-Pointer in C++ nicht möglich.
  2. 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 Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - C++ Pointer