Was ist der Unterschied zwischen einem void-Zeiger und einem NULL-Zeiger? [Duplikat]

7

Was ist der Unterschied zwischen einem Zeiger auf void und einem NULL-Zeiger in C? Oder sind sie gleich?

    
Sanjay 07.11.2010, 02:53
quelle

3 Antworten

13

In C gibt es void , void Zeiger und NULL Zeiger.

  1. void ist Abwesenheit des Typs . I.E. Eine Funktion, die einen void -Typ zurückgibt, ist eine Funktion, die nichts zurückgibt.
  2. void Zeiger: ist ein Zeiger auf einen Speicherort, dessen Typ kann alles sein: eine Struktur, ein int, ein float, Sie nennen es.
  3. Ein NULL -Zeiger ist ein Zeiger auf die Position 0x00 , dh keine Position. Auf nichts zeigen.

Beispiele:

void Funktion:

%Vor%

void Zeiger:

%Vor%

NULL Zeiger:

%Vor%     
Pablo Santa Cruz 07.11.2010 03:05
quelle
7

void ist ein Datentyp. void* ist nur ein Zeiger auf einen nicht definierten Typ. A void* kann auf einen beliebigen Speicherort gesetzt werden. Ein NULL-Zeiger ist ein beliebiger Zeiger, der auf NULL (0) gesetzt ist.

Also, sie sind anders, weil ein void-Zeiger ein Datentyp ist und ein NULL-Zeiger auf irgendeinen Zeiger verweist, der auf NULL gesetzt ist.

    
Alexander Rafferty 07.11.2010 02:58
quelle
5

Zeiger auf void ist ein Zeiger auf einen nicht angegebenen Typ. Ie. Nur ein Zeiger. Es kann immer noch ein gültiger Zeiger sein, aber wir wissen nicht, worauf es hinweist (zB. Eine Funktion könnte einen void-Zeiger als Parameter annehmen und dann den Typ nach einem anderen Parameter interpretieren)

NULL ist ein 'leerer' Zeiger. Nicht gültig, kann verwendet werden, um einen Zeiger auf nichts / nicht gesetzt anzugeben. Es ist ein Wert, während void ein Typ ist.

    
winwaed 07.11.2010 03:00
quelle

Tags und Links