Lasst uns a
sagen ist ein Zeiger, und nach dem Speicher für den verteilenden, möchte ich, wenn der Speicher zugewiesen wurde erfolgreich zu überprüfen, habe ich diese zwei Möglichkeiten gesehen tun:In C ist die Bedingung: "if (a! = NULL)" das gleiche wie die Bedingung "if (a)"?
if(a != NULL)
if(a)
Was zwischen dem ersten ist der Unterschied und zweite Aussagen?
Sie werden als das gleiche enden. – Steve
NULL ist ein Makro, das normalerweise als 0 definiert wird. Der erste Ausdruck ist also derselbe wie (a! = 0), der zweite prüft auch, ob a! = 0 ist. Daher ist derselbe Edit: normalerweise –
Ja, wenn * 'a' * ist ein Zeiger, er kann unterschiedlich sein, wenn 'a' kein Zeiger ist, der von der Definition von' NULL' abhängt. –