Чи можна використовувати 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
як значення, з яким потрібно працювати в завданнях та інших арифметичних операціях.