繁体   English   中英

有人可以解释为什么这个 C function 返回值 10 吗?

[英]Can someone please explain why this C function is returning the value of 10?

关于 C function 的初学者问题请耐心等待...

#include <stdio.h>
 #include <stdlib.h>
int some_function(void);

int result;
result = some_function();
printf("%d", result);

return 0;
}

int some_function(void)
{
    int i;
    for (i = 0; i < 10; i++)
    {
        // printf("%d", i);
    }

    return (i);    
}

我注释掉了运行 for 循环的结果,它是从 0 到 9 的所有整数。

我无法清楚地理解为什么本地 int i 的最终结果会再次增加以最终提供 10 out of int some_function(void) 的返回值。

非常感谢您的帮助。

for (i = 0; i < 10; i++)说:

  1. i初始化为零。
  2. 测试i < 10是否为真。 如果是,则执行循环体。 如果不是,则退出循环。
  3. i和 go 递增到第 2 步。

因此,循环继续执行直到i < 10false

i为 9 时, i < 10为真,循环不退出。 i为 10 时, i < 10为假,循环退出。

因此,当循环退出时, i为 10。

for (i = 0; i < 10; i++) {
    ...
}

相当于

i = 0
while (i < 10) {
    ...
    i++;
}

i为 9 时,执行循环体,然后i递增(现在它的值为 10),然后再次执行 while 循环的测试,循环退出, i的值仍然为 10。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM