C语言学习第七天 作用域

作用域规则

任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。

C 语言中有三个地方可以声明变量:
  1. 在函数或块内部的局部变量
  2. 在所有函数外部的全局变量
  3. 在形式参数的函数参数定义中

局部变量

概念

在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。

示例
//
// Created by dell on 2019.12.30.
//

#include <stdio.h>

int main() {
    //局部变量声明
    //a,b,c 只能在 main 函数里面获取到,在 main 函数外面获取不到
    int a, b;
    int c;

    //赋值
    a = 10;
    b = 20;
    c = a + b ;

    printf("a = %d , b = %d , c = %d ", a,b,c);

}

全局变量

概念
  1. 全局都能调用,生命周期较长
  2. 在程序中,局部变量和全局变量的名称可以相同,但是在函数内,如果两个名字相同,会使用局部变量值,全局变量不会被使用。
示例
//
// Created by dell on 2019.12.30.
//
#include <stdio.h>

//声明全局变量
int g = 20;

int main() {
    //局部变量声明
    int g = 10;
    //打印值
    printf("g = %d\n",g);
}

形式参数

概念

函数的参数
如果形式参数被当作该函数内的局部变量,
如果与全局变量同名会优先使用形式参数。

示例

//
// Created by dell on 2019.12.30.
//

#include <stdio.h>

//声明全局变量
int g = 20;

int a = 20;

int main() {
    //局部变量声明
    int g = 10;
    printf("g = %d\n", g);


    //局部变量声明
    int a = 10;
    int b = 20;
    int c = 0;
    //声明方法
    int sum(int, int);
    //打印 a 的值
    printf("a = %d \n", a);

    //调用方法
    c = sum(a,b);
    printf("c = %d \n", c);



    return 0;
}

/**
 * 求和
 * @param a  参数一 int 类型
 * @param b  参数二 int 类型
 * @return 两个参数的和
 */
int sum(int a, int b) {
    printf("a = %d \n", a);
    printf("b = %d \n", b);

    return a + b; 
}
发布了88 篇原创文章 · 获赞 114 · 访问量 3013

猜你喜欢

转载自blog.csdn.net/hongchenshijie/article/details/103773665