Код:Оператор логического на указатель
struct person *p = NULL;
printf("%d, %d\n", !p, !!p);
В коде выше !
оператор работает на указателе, я знаю !
работает с int
, но то, что происходит, когда он работает с pointer
?
Является ли указатель обработанным как int
в природе, или !
сделать преобразование типа?
Я нашел ссылку C99, упомянутую в ответе здесь: www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
Хороший ответ, кстати, я проверил документ c99 и обнаружил, что chp должен быть «6.5.3.3 Унарные арифметические операторы» –
@EricWang Очевидная опечатка. :-) Спасибо за указание. –