了解C中的循环
发布时间:2020-12-16 10:32:05 所属栏目:百科 来源:网络整理
导读:我很难在C中找出以下简单的for循环代码. int j=20;for(int i=0,j; i=j ; i++,j--) printf("i = %d and j = %d n",i,j); 打印输出为 i=0 and j=2i=1 and j=1 为什么它不以j = 20开始而是打印j = 2并在j = 1之后停止. 但是当我使用这段代码时 int j=20;for(in
我很难在C中找出以下简单的for循环代码.
int j=20; for(int i=0,j; i<=j ; i++,j--) printf("i = %d and j = %d n",i,j); 打印输出为 i=0 and j=2 i=1 and j=1 为什么它不以j = 20开始而是打印j = 2并在j = 1之后停止. 但是当我使用这段代码时 int j=20; for(int i=0,j=20; i<=j ; i++,j); 它开始正常 i=0 and j=20 upto ... i=9 and j= 11 有什么东西我错过了吗? 解决方法
你是.在for构造中声明j会创建一个新的(作用域)j,其值与外部不同.如果你没有初始化它,你会得到分配时在内存中发生的任何垃圾.
像这样的变量称为“自动”变量,并在程序的堆栈上分配.如果需要,可以分配更多的堆栈空间.当它们超出范围时(实际上当函数返回时),通过将它们全部弹回来清除它们. 当需要下一位自动存储时,会发生同样的事情,然后您可以获得在堆栈中留下的任何位模式作为新变量值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Qt之解析XML(QXmlStreamReader)
- 正则表达式
- react native 0.50 源码解析 再出发 持续更新
- 实体框架 – “Pluralize或Singularize生成的对象
- 如何在Flex 4.5中控制TextInput中的光标(克拉)位
- jlink 仿真器 烧录 海思 Hi3512 Hi3515 Hi3507 u
- ruby-on-rails-3 – Rail 3.2.2 / Devise:使用r
- Nand Flash数据存储规则与数据读写方法(三)
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 一个简单的SqlServerCe + Entity Framework 5 Co
热点阅读