void fn()這個(gè)函數(shù)里不是規(guī)定了函數(shù)返回值為void了么?為何在for中,卻能用這個(gè)沒有返回值的void函數(shù)繼續(xù)循環(huán)運(yùn)算下去,他是怎么儲(chǔ)存的?
#include <stdio.h>
void fn()
{
? ? static int x = 1; ? //定義靜態(tài)局部變量
? ? x*=2;
? ? printf("x=%d\n",x); ? ??
}
int main()
{
? ? int i;
? ? for(i=0;i<5;i++)
? ? {
? ? ? ? fn();
? ? }
? ? extern int x; ? ? ?//調(diào)用外部變量
? ? printf("x=%d\n",x);
? ? return 0;
}
int x=100;
想不明白,明明這個(gè)函數(shù)為無(wú)返回型void函數(shù),為何會(huì)有返回值供for判斷語(yǔ)句循環(huán)?
2015-02-01
for循環(huán)判斷的是括號(hào)中第一個(gè)分號(hào)后面的表達(dá)式,也就是for(i=0;i<5;i++)中的 i<5。這與循環(huán)體中的內(nèi)容沒有關(guān)系。
2015-01-31
根據(jù)你題目的意思,for循環(huán)必定循環(huán)5次,這是與其中的內(nèi)容無(wú)關(guān)的,因?yàn)檠h(huán)結(jié)束的判定條件是i<5。
而循環(huán)的內(nèi)容就是調(diào)用fn這個(gè)函數(shù),這個(gè)函數(shù)呢是void,所以是沒有返回值的,所以這樣寫↓是會(huì)報(bào)錯(cuò)誤的(略微加了點(diǎn)東西,看循環(huán)里面)
大概明白了嗎?函數(shù)的void與否與循環(huán)沒有一丁點(diǎn)關(guān)系。至于儲(chǔ)存與一般的函數(shù)相同,具體的你想知道嗎?得用匯編的知識(shí)了。。。
2015-01-31
這是在for循環(huán)里不斷調(diào)用fn而已 , void是指沒返回值 , 如果不是void 就可能有 a=fn();