关于C语言的问题

[复制链接]
查看11 | 回复4 | 2008-3-17 11:42:29 | 显示全部楼层 |阅读模式
k是static的,当运行完s1=f(5),k的值就是6了,运行s2=f(3)时,函数中语句for(; k<=m; k++) 因条件不满足而不会被执行其循环体,即s++;因此,s的值仍是初值0。
回复

使用道具 举报

千问 | 2008-3-17 11:42:29 | 显示全部楼层
因为你的f函数里k定义为了static类型,所以s2第2次调用时k还是6,6<=3为假,所以不执行s++.s还是0
回复

使用道具 举报

千问 | 2008-3-17 11:42:29 | 显示全部楼层
因为K仍是5 所以 for(; k<=m; k++) s++; 没有执行 S仍为0.SO,
回复

使用道具 举报

千问 | 2008-3-17 11:42:29 | 显示全部楼层
static int k=0; 注意这个static变量, 在执行s1后, k就不会初始化了(察看static变量相关知识),所以第2次执行s2的时候,k的初始值为6(s1执行完后k=6),for循环条件不满足,一次也不会执行,所以s=0。我不知道你为什么会认为是1,for的三个参数,第一个是初始化,然后判断第2个蚕食满足才执行循环,否则退出。s++一次也不会执行的。你写的程序有点怪s没有加
回复

使用道具 举报

千问 | 2008-3-17 11:42:29 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行