鱼C论坛

 找回密码
 立即注册
查看: 2177|回复: 1

[技术交流] 一些关于二级的小笔记

[复制链接]
发表于 2017-7-24 18:17:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

fun(int x,int y)
{
  static int m = 0,i = 2;
  i+=m+1; m=i+x+y;
  return m;
}
main()
{
  int j = 1,m = 1,k;
  k = fun(j,m);
  printf("%d",k);
  k = fun(j,m);
  printf("%d\n",k);
}
执行后的输出结果是A
A.5,11    B.5,5   C.11,11  D.11,5
[解析]:声明静态局部变量:函数调用结束时的值,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。
本体子函数fun的变量i和m均为静态局部变量,所以第一次调用fun函数,返回m的值为5,第二次再调用fun函数时,i的值为3,m的值已经是5了
,所以执行i+=m+1+i的值为9,m = i + x +y = 9+1+1=11.

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
小甲鱼 + 2 + 2 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-24 18:48:07 | 显示全部楼层
不错,记得添加“淘帖”哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-30 15:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表