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));
} 展开
这里面的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));
} 展开
展开全部
auto加不加无所谓。C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。
现在的声明变量一般自动是auto型。
static简单的说就是只能赋值一次 值改变了就改变了 运行到这一个语句也不会变(就相当于隐身了) 第一次调用 输出2+1+4 第二次2+1+5 然后2+1+6
现在的声明变量一般自动是auto型。
static简单的说就是只能赋值一次 值改变了就改变了 运行到这一个语句也不会变(就相当于隐身了) 第一次调用 输出2+1+4 第二次2+1+5 然后2+1+6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for 循环,确实没有什么用,因为只是将你的结果输出三次而已,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询