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

来源:5-11 变量存储类别

把心刘

2016-08-24 06:59

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

写回答 关注

4回答

  • qq_水成文风萧祭_03849555
    2016-08-24 16:21:41
    已采纳

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

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

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

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

    没有梦想的咸...

    关键问题是:为什么输出的第一个是x=1而不是x=0呢? x++的含义不就是先输出再+1吗?

    2016-10-27 16:09:28

    共 2 条回复 >

  • 斟酒独酢
    2016-09-04 23:15:53

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

  • 慕粉1820513704
    2016-08-24 20:07:54

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

    直接a++;等于1

    慕后端978...

    我觉得你说的不是好对 你看关于自增自减运算符的那一章 直接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 22:15:05

    共 1 条回复 >

  • 慕盖茨8104760
    2016-08-24 19:38:04

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

    把心刘

    恩,谢谢

    2016-08-24 19:54:03

    共 1 条回复 >

C语言入门

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

926212 学习 · 20797 问题

查看课程

相似问题