我爱电脑与体育
2015-01-31 14:53
#include <stdio.h>
void fn()
{
static int x = 1; //定义静态局部变量
x*=2;
printf("x=%d\n",x);
}
int main()
{
int i;
for(i=0;i<5;i++)
{
fn();
}
extern int x; //调用外部变量
printf("x=%d\n",x);
return 0;
}
int x=100;
想不明白,明明这个函数为无返回型void函数,为何会有返回值供for判断语句循环?
for循环判断的是括号中第一个分号后面的表达式,也就是for(i=0;i<5;i++)中的 i<5。这与循环体中的内容没有关系。
根据你题目的意思,for循环必定循环5次,这是与其中的内容无关的,因为循环结束的判定条件是i<5。
而循环的内容就是调用fn这个函数,这个函数呢是void,所以是没有返回值的,所以这样写↓是会报错误的(略微加了点东西,看循环里面)
#include <stdio.h> #include <stdlib.h> void fn() { static int i=0; printf("%d\n",i++); } int main() { int i; int wrong; for(i = 0; i < 5; i++) { wrong=fn(); } return 0; }
大概明白了吗?函数的void与否与循环没有一丁点关系。至于储存与一般的函数相同,具体的你想知道吗?得用汇编的知识了。。。
这是在for循环里不断调用fn而已 , void是指没返回值 , 如果不是void 就可能有 a=fn();
C语言入门
926894 学习 · 21464 问题
相似问题