2011-02-10 2 views
2

J'ai entendu que NULL est équivalent à .net nullptr et que 0 n'est pas équivalent à .net nullptr. Pourquoi? Je pensais que NULL est une macro égale à 0?pointeurs et .net pointers

+0

@Cody, il y a. Nullptr est un mot-clé dans le langage C++/CLI, bien avant C++ 0x. –

+0

@Hans: Ah, tant pis alors. –

Répondre

1

Cela dépend si vous parlez de pointeurs non gérés ou de handles gérés. En ce qui concerne les pointeurs, une citation de la documentation here:
L'exemple suivant montre que nullptr et zero peuvent être utilisés de façon interchangeable sur les pointeurs natifs.

Cependant, si vous parlez d'une poignée géré, vous pouvez alors pas utiliser 0 comme décrit dans cette citation de la même page:
Vous ne pouvez pas initialiser une poignée à zéro; seulement nullptr peut être utilisé. L'affectation de la constante 0 à un descripteur d'objet produit un Int32 encadré et un cast vers Object ^.

+0

Donc, il n'y a pas de différence entre NULL et 0? –

+0

@lital: En supposant que vous parlez de C++, non. –