我试图理解为什么下面的代码产生的输出7.
int main()
{
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int b[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int c = 5;
int *p = a;
printf("%d", (c[b])[p]);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个递归调用自身并按升序打印给定数字的代码,即如果数字是5,那么函数将打印1 2 3 4 5.我不能以任何方式使用循环!
void print_ascending(int n)
{
int i = 1;
if(i < n)
{
printf("%d", i);
i++;
print_ascending(n);
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这段代码的问题是它会每次将变量i重新初始化为1并无限循环以打印1.
也没有允许外部全局变量或外部函数!