#include <stdio.h>
int f(int x)
{ static int y=1;
x+=y;
y++;
return x;
}
int main(void)
{ int k;
k=f(3);
printf("%d %d\n",k,f(k)); //%d和%d之间只有1个空格
return 0;
求输出的两个数。11111
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 技术专家团-小桥流水 2021-11-29 22:36关注
4 6
static int y=1;在f函数中,y是静态变量,初始化只执行一次,相当于全局变量。具体过程如下:
k=f(3)
在f(3)函数中,x=3,y=1
x+=y = 4
y++后y=2
return x,也就是返回4
所以在main函数中,k=f(3)=4
printf函数显示的第一个k的值就是4地刺执行f(k),也就是f(4)
x=4
y=2(静态变量,相当于全局,上一次执行f函数后,y的值是2)
x+=y = x+y=4+2=6;
y++后y=3
return x,也就是返回6,
printf函数显示的第二个值就是6本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 欧拉系统opt目录空间使用100%
- ¥15 ul做导航栏格式不对怎么改?
- ¥20 用户端如何上传图片到服务器和数据库里
- ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
- ¥30 vivado封装时总是显示缺少一个dcp文件
- ¥100 pxe uefi启动 tinycore
- ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
- ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
- ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
- ¥15 疾病的获得与年龄是否有关