扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这个很麻烦,不过不难。每次计算的时候,搞清楚各个值就好了。
创新互联主营柴桑网站建设的网络公司,主营网站建设方案,重庆APP开发,柴桑h5小程序制作搭建,柴桑网站营销推广欢迎柴桑等地区企业咨询
首先
func调用两次,参数都是主函数的k和m
这两个值是不变的。也就是说
两次都是func(4,1)
对于func
第一次
a=4
b=1
m=0
i=2
//初始化
i+=m+1
-
i=i+m+1=2+0+1=3
m=i+a+b=3+4+1=8
返回8
于是第一个printf输出8,
第二次
a=4
b=1
m=8
i=3
//这两个变量是static
的,所以第二次进入的时候,m和i都是第一次退出时的值。
i+=m+1
-
i=i+m+1=3+8+1=12
m=i+a+b=12+4+1=17
返回17
于是第二个printf输出17
选A
动态函数执行结束后,函数占用的内存会被注销掉,数值不保留,静态就可以保留数值
楼上只说一半,可致电A和B是两个功能确实使用包括添加a.cpp和b.cpp的main.cpp里面使用包括实际的相应的代码的位置。真的做的项目没有这样做,并正在使用的头文件,
静态函数和变量在其他文件中是完全不可见的,这是错误的的地方楼上,即使有出口extern声明函数不能在编译的时候没有通过,将上报的静态类型错误,不能导出。 。 。在
头文件中加入你的原始文件结构:
/ /啊
#包括
使用命名空间std;
无效的(??); BR / / / BH
无效();
然后改变里面的两个main.cpp中包括AH和BH编译:g+ +的main.cpp的a.cpp b.cpp会发现报告的错误:
a.cpp:在函数'无效():
a.cpp:3:错误:无效()“被宣布为”外部“和后来的”静态“
啊:3:错误:()先前的声明“无效”
这里是因为一个函数的静态类型,你不能出口,摆脱静态这里可以编译通过。 。 。 。
这是静态的使用
原因就是会造成空间的浪费,当系统调用函数是,事实它是在建副本(我这么说你能理解吧),在副本里面把所有的东西都运算处理在返回结果,然后把建副本的资源清掉回收,如果你是用了,静态变量和函数,那么在资源回收时就不回收这一部分的,等于下次要用时能继续用,一般是为了满足某种特殊需求而使用;如果全部都用,那就太浪费空间了
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流