Могу ли я использовать указатель 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
в качестве значения для работы с присваиваниями и другие арифметические операции.