yangvu 发表于 2008-9-4 12:14

问一个关于c语言中静态变量的问题

手头没有仿真工具,要不然自己可以单步执行了看一下,所以在此请教一下<br /><br />有这样一个函数,里面定义了一个静态变量index0:<br />void&nbsp;rcvdata&nbsp;(&nbsp;void&nbsp;)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;int&nbsp;index0&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;其他执行语句<br />}<br /><br />我想问一下,是否每次调用此函数的时候静态变量index0都被赋一下0,还是index0保持为上次执行之后的结果,因为这里定义index0的语句中同时给它赋0.

HWM 发表于 2008-9-4 12:29

若是静态变量,只是在进入主程序前初始化一次。

而若是一般局部变量(不含static),则每次进入到其作用域都将对其初始化一次。

yangvu 发表于 2008-9-4 17:26

re

你说的主函数是指哪个函数

HWM 发表于 2008-9-5 07:51

re LZ:main()

sodwell 发表于 2008-9-5 08:41

re

static的你就想象初始化一次后,以后就再也不对他初始化了,所以他保持以前的值不变

yangvu 发表于 2008-9-5 08:50

re

Thank&nbsp;you,sodwell&nbsp;and&nbsp;HWM.<br /><br />
页: [1]
查看完整版本: 问一个关于c语言中静态变量的问题