coco1312 2015-09-04 08:10 采纳率: 0%
浏览 1364

C语言两个类似的小程序求教区别

第一个程序如下:
#include
int a=2;
int f()
{
static int n;
int m;
m=n=0;
n++;a++;m++;
return n+m+a;
}
main()
{
_ int k;
for(k=0;k<3;k++)
printf("%d,",f());
printf("\n");_
}

程序运行结果:
5,6,7,

第二个程序如下:
#include
int a=2;
int f()
{
static int n=0;
int m=0;
n++;a++;m++;
return n+m+a;
}
main()
{
int k;
for(k=0;k<3;k++)
printf("%d,",f());
printf("\n");
}
/*
程序运行结果:
5,7,9,
*/
====求教大侠,为何相似的两个程序运行结果不一样呢?

  • 写回答

3条回答 默认 最新

  • danielinbiti 2015-09-04 08:51
    关注
     区别在于static int n;
     static int n=0;是初始化,只初始化一次,也就是下一次f()执行的时候不执行这一句了。
     而
     m=n=0;是赋值,每次f()执行的时候,n都会变0
    
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况