static 在循环中的作用
2017-02-14 21:31
225 查看
#include<stdio.h> int Square(int i){ return i*i; } int main(){ int i = 0; i = Square(i); for( ;i<3;i++){ static int i = 1; i+=Square(i); printf("%d,",i); } printf("%d\n",i); return 0; }
上述代码的运行结果为 2,6,42,3
下面我们来分析这个程序的运行结果,static 关键字所声明的i作用范围为
static int i = 1; i+=Square(i); printf("%d,",i);这三句 不妨将for循环里面用j来代替这个i,与全局变量i区分开来
当 i=0 时 j=1 j+=Square(j) 的值为 1+1 打印输出 2
当 i=1 时 j=2 j+=Square(j) 的值为 2+4 打印输出 6
当 i=2 时 j=1 j+=Square(j) 的值为 6+36 打印输出 42
当 i=3 时 跳出循环 此时 i = 3 打印输出3
相关文章推荐
- 任意View的跑马灯效果
- 流媒体sos rtsp hls h264 高并发 低延时 系统 设计 录像 视频合成 转发 点播 快进 快退 单步播放 分布式集群 服务搭建
- C# 员工打卡
- Scala 异常和懒加载
- MySQL8_64位解压包安装
- python 批量下载并安装deb包
- 利用git制作内核补丁(简易版)
- 最长递增子序列(导弹拦截)
- Resource .NET 3.0.5996 资源档编辑器(.NET资源修改器)
- Android 封装RecyclerView.Adapter,省其ViewHolder
- 我是如何使用 Python 优雅的薅到网易uu的羊毛的
- 《一口气读完二战史》—— 读后总结
- codewars算法题-Sum without highest and lowest number
- bzoj1008 容斥
- 深入理解Android虚拟机三------内存分配策略
- 明明的随机数
- 总结 XSS 与 CSRF 两种跨站攻击
- 后缀表达式通过栈实现表达式树
- @@Android 稳定性研究
- codeforces 765 D Artsem and Saunders(构造)