int main(void)
{
return('yes', *"no", **main, *********printf) ("hello world!\n") *0;
}
输出 hello world!
,但它实际上是如何工作的?
最佳答案
真正有两件事:
- 函数指针不像其他指针那样取消引用。
*main == main
- 逗号分隔的列表返回列表中最后一个元素的值
所以如果我们简化指针:
int main(void)
{
return('yes', *"no", main, printf) ("hello world!\n") *0;
}
并使用列表中的最后一个元素作为列表的值
int main(void)
{
return printf("hello world!\n") *0;
}
printf
返回打印的字符数
int main(void)
{
return 13 *0;
}
而 13*0 留给读者作为练习。
关于c - 这个 "hello world!"程序是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2669971/