首页 新闻 会员 周边

在c语言中在同一行中调用含有静态变量的函数两次,函数是如何执行的?

0
悬赏园豆:10 [已解决问题] 解决于 2015-09-22 11:13

代码如下,解释下printf语句里两个函数的执行。

#include"stdio.h"

int my(const int a )

{

 static int count=a;

 return count+a;

}

int main()

{

 printf("%d\n%d\n",my(4),my(5));  

return 0;

}

结果是:

9

10

卡贝天师的主页 卡贝天师 | 初学一级 | 园豆:193
提问于:2015-09-22 09:59
< >
分享
最佳答案
0

函数参数的入栈顺序为自右向左,所以先计算 my(5)。

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2015-09-22 10:37

谢谢您的回复。

卡贝天师 | 园豆:193 (初学一级) | 2015-09-22 11:12
其他回答(2)
0

就是调用my(4),my(5)

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-22 10:35

谢谢您的回复。

支持(0) 反对(0) 卡贝天师 | 园豆:193 (初学一级) | 2015-09-22 11:12

@卡贝天师: 我都诱导你了,我应该谢谢你,函数参数的入栈顺序为自右向左,互相学习

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-22 12:27
0

先计算 my(5)

silianpan | 园豆:571 (小虾三级) | 2015-09-22 11:08

谢谢您的回复。

支持(0) 反对(0) 卡贝天师 | 园豆:193 (初学一级) | 2015-09-22 11:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册