C语言程序问题

下面这段话什么意思呢?为什么我把main及其语句删除后输出的值不变,这里面的for实现了什么功能呢auto、static分别有什么作用呢?#include"stdio.h... 下面这段话什么意思呢? 为什么我把main及其语句删除后 输出的值不变,
这里面的for实现了什么功能呢

auto、static分别有什么作用呢?

#include"stdio.h"
f(int a)
{
auto int b=0;
static c=3;
b=b+1;
c=c+1;
return(a+b+c);
}

main()
{
int a=2,i;
for(i=0;i<3;i++)
printf("%d\n",f(a));

}
展开
 我来答
tdfzq
2014-04-20 · TA获得超过839个赞
知道小有建树答主
回答量:771
采纳率:75%
帮助的人:201万
展开全部
for实现了输出显示3个数。

auto定义的变量为 局部变量也称为自动变量,只在其所在的函数有效。
在变量前,加上关键字static,该变量就被定义成为一个静态局部变量。
这个函数打印3个不同的数,就是让你知道局部变量和全局变量的区别。
灯下憔人
2014-04-20 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:114万
展开全部
auto加不加无所谓。C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。
现在的声明变量一般自动是auto型。
static简单的说就是只能赋值一次 值改变了就改变了 运行到这一个语句也不会变(就相当于隐身了) 第一次调用 输出2+1+4 第二次2+1+5 然后2+1+6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ad8bb83
2014-04-20 · TA获得超过4259个赞
知道大有可为答主
回答量:1469
采纳率:100%
帮助的人:1632万
展开全部
 
#include"stdio.h"
int f(int a)
{ auto int b=0;
  static int c=3;
  b=b+1;
  c=c+1;
  return(a+b+c);
 }
main()
{ int a=2,i;
  for(i=0;i<3;i++)
    printf("%d\n",f(a));
  }
  
  // 输出结果为7 8 9
  // 本题考查auto类型和static类型,i从0到2循环三次,每次循环中,
  // auto类型的b每次都是定义为0,然后加1,三次都没变化
  // static类型的c,由于不释放,第一次是3+1,第二次是4+1,第三次是5+1
  // 造成a+b+c的值成为7 8 9
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenfenggang99
2014-04-20 · TA获得超过1850个赞
知道大有可为答主
回答量:1746
采纳率:75%
帮助的人:1749万
展开全部
for 循环,确实没有什么用,因为只是将你的结果输出三次而已,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式