#include <stdio.h>
// 全局变量
int x = 0 ;
void mondai1( ) {
x = 102 ; // 修改全局变量
printf ( "x = %d ← 在mondai1内更新全局变量\n " , x
) ; }
void mondai2( ) {
static int c = 0 ; // 静态变量,只初始化一次
c += 4 ;
x = c + 1 ; // 更新全局变量(教材最后一行=13 就是因为这里)
}
int main( ) {
printf ( "x = %d ← 全局变量x的初始值\n " , x
) ;
x = 101 ; // 更新全局变量
printf ( "x = %d ← 全局变量x在第18行更新\n " , x
) ;
mondai1( ) ; // 调用函数mondai1
// 调用3次mondai2
mondai2( ) ;
mondai2( ) ;
mondai2( ) ;
printf ( "x = %d ← mondai2执行3次后静态变量c累积并更新全局变量\n " , x
- 1 ) ;
// 定义局部变量x(会屏蔽全局x)
int x = 103 ;
printf ( "x = %d ← 局部变量x\n " , x
) ;
x = 104 ;
printf ( "x = %d ← 局部变量x\n " , x
) ;
// 打印全局变量x
{
extern int x; // 显式指全局x
printf ( "x = %d ← 全局变量x的值(在第12行更新过)\n " , x
) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyDlhajlsYDlj5jph48KaW50IHggPSAwOwoKdm9pZCBtb25kYWkxKCkgewogICAgeCA9IDEwMjsgIC8vIOS/ruaUueWFqOWxgOWPmOmHjwogICAgcHJpbnRmKCJ4ID0gJWQg4oaQIOWcqG1vbmRhaTHlhoXmm7TmlrDlhajlsYDlj5jph49cbiIsIHgpOwp9Cgp2b2lkIG1vbmRhaTIoKSB7CiAgICBzdGF0aWMgaW50IGMgPSAwOyAgLy8g6Z2Z5oCB5Y+Y6YeP77yM5Y+q5Yid5aeL5YyW5LiA5qyhCiAgICBjICs9IDQ7CiAgICB4ID0gYyArIDE7ICAgICAgICAgLy8g5pu05paw5YWo5bGA5Y+Y6YeP77yI5pWZ5p2Q5pyA5ZCO5LiA6KGMPTEzIOWwseaYr+WboOS4uui/memHjO+8iQp9CgppbnQgbWFpbigpIHsKICAgIHByaW50ZigieCA9ICVkIOKGkCDlhajlsYDlj5jph49455qE5Yid5aeL5YC8XG4iLCB4KTsKCiAgICB4ID0gMTAxOyAgLy8g5pu05paw5YWo5bGA5Y+Y6YePCiAgICBwcmludGYoInggPSAlZCDihpAg5YWo5bGA5Y+Y6YePeOWcqOesrDE46KGM5pu05pawXG4iLCB4KTsKCiAgICBtb25kYWkxKCk7ICAvLyDosIPnlKjlh73mlbBtb25kYWkxCgogICAgLy8g6LCD55SoM+asoW1vbmRhaTIKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIG1vbmRhaTIoKTsKICAgIHByaW50ZigieCA9ICVkIOKGkCBtb25kYWky5omn6KGMM+asoeWQjumdmeaAgeWPmOmHj2PntK/np6/lubbmm7TmlrDlhajlsYDlj5jph49cbiIsIHggLSAxKTsKCiAgICAvLyDlrprkuYnlsYDpg6jlj5jph49477yI5Lya5bGP6JS95YWo5bGAeO+8iQogICAgaW50IHggPSAxMDM7CiAgICBwcmludGYoInggPSAlZCDihpAg5bGA6YOo5Y+Y6YePeFxuIiwgeCk7CgogICAgeCA9IDEwNDsKICAgIHByaW50ZigieCA9ICVkIOKGkCDlsYDpg6jlj5jph494XG4iLCB4KTsKCiAgICAvLyDmiZPljbDlhajlsYDlj5jph494CiAgICB7CiAgICAgICAgZXh0ZXJuIGludCB4OyAvLyDmmL7lvI/mjIflhajlsYB4CiAgICAgICAgcHJpbnRmKCJ4ID0gJWQg4oaQIOWFqOWxgOWPmOmHj3jnmoTlgLzvvIjlnKjnrKwxMuihjOabtOaWsOi/h++8iVxuIiwgeCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K