Могу ли я использовать NULL
указатель в качестве замены для значения 0
?
Или что-то не так в этом?
Как, например:
int i = NULL;
как замена для:
int i = 0;
В качестве эксперимента я скомпилировал следующий код:
#include <stdio.h>
int main(void)
{
int i = NULL;
printf("%d",i);
return 0;
}
Вывод:
0
Действительно, это дает мне это предупреждение, которое само по себе совершенно правильно:
warning: initialization makes integer from pointer without a cast [-Wint-conversion]
но результат все равно эквивалентен.
- Я перехожу в "Неопределенное поведение" с этим?
- Допустимо ли использовать
NULL
таким образом? - Что-то не так с использованием
NULL
в качестве числового значения в арифметических выражениях? - И каков результат и поведение в C ++ для этого случая?
Я прочитал ответы о том, в чем разница между NULL, '\ 0' и 0, о том, в чем разница NULL
, \0
и 0
есть, но я не получил оттуда краткую информацию, если она вполне допустима, а также правильно использовать NULL
как значение для работы в присваиваниях и других арифметических операциях.