永发信息网

C语言程序问题

答案:4  悬赏:50  手机版
解决时间 2021-11-25 11:55
C语言程序问题
最佳答案

#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
",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
全部回答
for 循环,确实没有什么用,因为只是将你的结果输出三次而已,
for实现了输出显示3个数。

auto定义的变量为 局部变量也称为自动变量,只在其所在的函数有效。
在变量前,加上关键字static,该变量就被定义成为一个静态局部变量。
这个函数打印3个不同的数,就是让你知道局部变量和全局变量的区别。
auto加不加无所谓。C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。
现在的声明变量一般自动是auto型。
static简单的说就是只能赋值一次 值改变了就改变了 运行到这一个语句也不会变(就相当于隐身了) 第一次调用 输出2+1+4 第二次2+1+5 然后2+1+6
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
儿子7岁半,突然要他爸爸陪着睡觉! 儿子在7
我是一名织布挡车工,想在襄阳找一份工作
有做MES的话,在国内MES行情怎么样
拐杖能调成哪种款示
怎样做河南肉白豆腐
卤完菜的香料还可以怎么用?
我想请教一下大神,excel表格复制到cdr中,文
请告诉我滨崎步的最新专辑国内出版了吗?
果木画室地址好找么,我有些事要过去,
爱不释手的“释”是什么意思?
想要买荣耀10或者x21,不知道那个好点...
九言四句的爱国诗歌
麻烦帮我翻译一下这个小吐司配方
孙俪为什么在大红之时和邓超结婚生子
手表原单水货什么意思
推荐资讯
起凡里面灵法福怎么出
三亚恒大御府周边环境怎么样?生活便利吗?
前天和一消防员男士相亲,他总体给我的印象很
为什么别人撩起裤脚来像个高富帅,而我撩起来
万事自古难得圆是什么意思?
木羽念什么
汉传国宝指的是什么
HD2安卓无线重启,WM卡第一屏求救!1000财富
上面一个老下面一个毛念什么字啊
关于彭于晏的绯闻有哪些?
贷十五万三年 月息0.86 利息一共需要还多少
六个月的宝宝老是吐奶是正常现象吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?