第一个例子:
- #include <stdio.h>
- int a=0; // 全局变量
- void foo(void);
- int main(void) {
- int a=2; // main函数内的局部变量
- int b=3; // main函数内的局部变量
- printf("1. main_b = %d\n", b);
- printf("main_a = %d\n", a);
- foo();
- printf("2. main_b = %d\n", b);
- }
- void foo(void){
- int b=4; // foo函数内的局部变量
- printf("foo_a = %d\n", a);
- printf("foo_b = %d\n", b);
- }
输出结果:
第二个例子:
- #include <stdio.h>
- int x = 2;
- int y = 3;
- int z = 4;
- void moo(int x, int *y){
- int z;
- x = x+3;
- *y = *y+3;
- z = z+3;
- /**
- * 这里的 z 是局部变量。
- * 注意:z 没有被手动初始化。
- * 不过从后面的输出结果可以看出,z 被编译器自动初始化为 0。
- * 一般情况下,编译器会有一个警告,告诉你 z 没有被初始化
- **/
- printf("moo : x = %1d, *y = %1d, y = %1d, z = %1d\n", x,*y,y,z);
- }
- int main(void){
- moo(x, &y);
- printf("main: x = %1d1, y = %1d, z = %1d\n", x,y,z);
- }
输出结果: