【发布时间】:2014-11-04 09:29:02
【问题描述】:
我在 c++ 编程上下文中看到了这个问题,我检查了一个解决方案,我的一个朋友给了我这段代码,它的工作很完美,但我无法理解它的逻辑以及它是如何工作的。我问过他,但他也不知道程序实际上是如何工作的,我认为他也从某个地方采取了这个解决方案。任何人都可以解释这背后的逻辑,我的意思是在线
(&main +(&exit - &main)*(j/1000))(j+1);?
#include <stdio.h>
#include <stdlib.h>
void main(int j) {
printf("%d\n", j);
(&main + (&exit - &main)*(j/1000))(j+1);
}
提前致谢
【问题讨论】:
-
不能在 C++ 中递归调用
main。 -
感谢您的快速重播。我在 c++ 中尝试过,但它不起作用,但在 c 中它可以完美地工作。但我不知道它是如何工作的。我的意思是它的逻辑
-
这是标准
main签名吗? -
似乎这段代码是在“作弊”,它使用递归函数调用来创建计数循环(它不是显式循环,但那里仍然存在循环)。不过,不错的解决方案。
-
指针减法是未定义的行为。
标签: c