您当前的位置:首页 > 计算机 > 编程开发 > C语言

关于C语言作用域的两个例子

时间:12-29来源:作者:点击数:

第一个例子:

#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);
}

输出结果:

1. main_b = 3
main_a = 2
foo_a = 0
foo_b = 4
2. main_b = 3

第二个例子:

#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);
}

输出结果:

moo :  x = 5, *y = 6, y = 1073742056, z = 3
main: x = 21, y = 6, z = 4
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门