C语言笔记系列——局部变量与全局变量

本文详细探讨了C语言中的局部变量和全局变量,包括它们的作用域。局部变量仅在函数或复合语句内部有效,而全局变量在整个文件中有效。全局变量虽然可跨函数访问,但过度使用会降低函数独立性。程序示例展示了同名局部变量和全局变量如何共存,以及它们的值如何在函数调用中变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍局部变量与全局变量的作用域,通过最后的简单的程序代码可以看出二者的作用域分别是哪里。

局部变量

关于局部变量的几点说明:

1. 局部变量是在函数内部或者复合语句中定义的变量,作用域分别为函数内部和复合语句内部。

2. 允许在不同函数中使用相同的函数名,它们代表不同的对象,分配不同的单元,互不干扰,也不会混淆。

3. 形参变量属于被调函数的局部变量,实参变量属于主调函数的局部变量。形参和实参是不同函数中的变量,作用于不同的函数中。

全局变量

关于全局变量的几点说明:

1. 在函数外部定义的变量属于全局变量,也叫外部变量。作用域是从变量定义的位置开始一直到文件结束,全局变量可以被该范围内的所有函数使用。

2. 全局变量在定义时,若未初始化,系统默认为0。

3. 全局变量可以加强函数之间的数据联系,但是会使得函数之间的独立性降低。从模块化程序设计的角度看是不利的,因此要尽可能减少使用或者不使用全局变量。

关于全局变量和局部变量的一个例子:

程序代码:

#include <stdio.h>
int a,b;
int f1(){
    a = a + 10;
    b = b + 15;
    return a + b;
}
int f2(){
    int a = 1;
    a = a + 5;
    b = b + 8;
    return a + b;
}
main(){
    int x,y;
    x = f1();
    printf("x=%d a=%d b=%d\n",x,a,b);
    y = f2();
    printf("y=%d a=%d b=%d\n",y,a,b);
}

程序运行结果:

x=25 a=10 b=15
y=29 a=10 b=23

程序说明:

1. 在同一个文件中,局部变量和全局变量可以同名。在局部变量的作用域内,全局变量不起作用。

2. 本程序中定义了全局变量a,b,在整个程序中都有效。但是在f2函数中定义了同名局部变量a,仅仅在f2中有效。

2. 在程序执行时,全局变量a,b的初始值为0,调用函数f1,将全局变量a、b的值修改为10、15,返回值为25,所以x的值为25。输出为x=25 a=10 b=15。调用f2,函数内定义了局部变量a=1,在这里全局变量a不起作用,局部变量a的值为1+5=6,全局变量b的值为15+8=23,返回值为6+23=29,所以y的值为29,输出为y=29 a=10 b=23。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值