C语言关键字浅析-for

### C语言关键字浅析系列 ###

### ISO/ANSI C 关键字 ###

for关键字似乎并不能从其字面本身看出其含义

但这是个最常见的关键字,而且在循环结构的使用中也基本是最多的

同while一样,for循环是一个入口条件循环,并且在某些方面比while显得更简洁干练

 

for的作用是:

表达for循环结构。

 

1、for的三个动作

注意,for循环后的括号内不是三个参数,而是三个动作

严格来讲它们分别叫做初始化,测试,更新,比如这条语句:for (i = 0; i < 10; i++)/* 循环体 */;

i = 0就是初始化过程,测试条件指的是初始化完成后是否有执行循环语句的条件成立,即i < 10,i++是执行完一遍后的更新操作

由于括号中的是三个动作,而且初始化操作只做一次,所以有时候初始化操作处不一定都是赋值语句:

int index = 0;
for (printf("Begin scanning\n");index != 1024;)   /* 此处初始化操作其实是一个输出 */
{
	getFromData(&index);  /* 对index赋值 */
}

 

2、for的三个动作的缺省

在一些循环中,每趟循环完毕不一定非要有某个更新操作(如上),所以最后一个动作缺省的时候表示没有更新操作

当然这也依赖于for的缺省机制,按道理这三个动作其实都可以缺省掉而且不会认为是错误的:

/* 全员缺省的for,效果是死循环,但看上去怪别扭的 */
for (;;){}

/* 这样写死循环好一些没 */
while (1){}

/* 别看有些for循环表面上风风光光的,其实是个死循环,下面这个程序会一直加,加到爆炸 */
for (i = 0;;i++){}

/* 和上面老兄一个死样儿 */
i = 0;
while(1){i++;}

注意,第一个动作缺省可以理解,第三个动作缺省可以理解,第二个动作缺省为什么就死循环了?

因为当系统发现for的第二个动作缺省时,会认为是“真”,所以在一直条件为真的情况下就没有退出的情况了,这样的设备建议拔电源

 

3、逗号运算符

有时候for循环的初始化和更新操作可能不止针对一个变量,但一条语句只能修改一个变量,

这就催生了逗号运算符给for循环锦上添花的一段佳话

逗号运算符扩展了for循环的灵活性,使其在初始化和更新时能多做点事:

for (i = 0, j = 0; i < 10; i++, j += 2)
{
	/* 虽然一次动作的子动作多了,但顺序还是一样的 */
}

 

——参考《C Primer Plus第五版》

 

相关文章:

C语言关键字浅析-while

C语言关键字浅析-do

C语言关键字浅析-break

C语言关键字浅析-continue

C语言关键字浅析goto

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值