簡體   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