为了账号安全,请及时绑定邮箱和手机立即绑定

关于课程讲解的"2、用static修饰的为静态变量。。。"

没有看懂例子。x和i的关系搞不清。。。为什么第一个输出是fn:x=1,最后是fn:x=10,第一个输出不应该是fn:x=0吗?又不是++x或++ihttp://img1.sycdn.imooc.com//57bcd5c400015ddf04160348.jpg

正在回答

4 回答

只进行一次赋值。第一轮:static int x=0; x++     得到x=1

因为是静态变量,第二轮自动跳过赋值x=0,而使用x=1,再进行x++,得到x=2

下面的主函数直接对上面的定义函数引用的10次。同时上面的定义函数也循环了10次。

(花了近一个小时才弄懂,非专业,大神勿喷)

2 回复 有任何疑惑可以回复我~
#1

把心刘 提问者

非常感谢!
2016-08-24 回复 有任何疑惑可以回复我~
#2

没有梦想的咸魚

关键问题是:为什么输出的第一个是x=1而不是x=0呢? x++的含义不就是先输出再+1吗?
2016-10-27 回复 有任何疑惑可以回复我~

static静态变量, 意思就是只进行一次初始赋值,后面再赋值都是直接跳过的

0 回复 有任何疑惑可以回复我~

如果是:b=a++;那么b等于0

直接a++;等于1

2 回复 有任何疑惑可以回复我~
#1

慕后端9788028

我觉得你说的不是好对 你看关于自增自减运算符的那一章 直接a++还是先输出的100 #include <stdio.h> void fn() { int b; static int x = 0; //定义静态局部变量 x++; b=x; printf("x=%d\n",b); } int main() { int i; for(i=0;i<10;i++) { fn(); } //调用外部变量 return 0; } 结果依然是1到10
2016-09-05 回复 有任何疑惑可以回复我~

x++  后面输出就已经是1了

0 回复 有任何疑惑可以回复我~
#1

把心刘 提问者

恩,谢谢
2016-08-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926209    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

关于课程讲解的"2、用static修饰的为静态变量。。。"

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信