这段代码在C中意味着什么,“int x =〜!printf; “? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这段代码在C中意味着什么,“int x =〜!printf; “? [关闭]相关的知识,希望对你有一定的参考价值。

int x = ~!printf;
printf("%d	%x",x,x);

它给出:-1 ffff

谁能解释一下?

答案

没有参数的printf是函数指针,值得一个非零值(它是内置的,因此指针不能为零)

现在你对这个非零值应用逻辑否定(!):你得到零。

现在否定这个零位(使用位到位否定~),你得到int位范围内的所有1(这可能因编译器而异)

以十进制格式打印产生-1,并以十六进制产生给定数量的fs,具体取决于整数的大小(在我的32位整数编译器上,我得到ffffffff

(注意 - 特别是函数指针的否定 - 不能是某些有效程序的一部分,这仅用于学术目的)

以上是关于这段代码在C中意味着什么,“int x =〜!printf; “? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java中swing组件的基本问题?

这段代码中的“”是啥,它的基本作用是啥?

数据流kmeans的matlab代码

C++ 数组和“new”关键字

Python中的模运算符

**在C / C ++中意味着什么? [重复]