Posso usare il NULLpuntatore come sostituto del valore di 0?
O c'è qualcosa di sbagliato in questo fare?
Ad esempio:
int i = NULL;
in sostituzione di:
int i = 0;
Come esperimento ho compilato il seguente codice:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
Produzione:
0
In effetti mi dà questo avvertimento, che è completamente corretto da solo:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
ma il risultato è ancora equivalente.
- Sto attraversando "Undefined Behaviour" con questo?
- È consentito utilizzare
NULLin questo modo? - C'è qualcosa di sbagliato nell'usare
NULLcome valore numerico nelle espressioni aritmetiche? - E qual è il risultato e il comportamento in C ++ per questo caso?
Ho letto le risposte di Qual è la differenza tra NULL, '\ 0' e 0 su quale sia la differenza tra NULL, \0ed 0è, ma non ho ottenuto le informazioni concise da lì, se è del tutto ammissibile e anche giusto usare NULLcome valore per operare con in incarichi e altre operazioni aritmetiche.