C语言入门--局部变量--第一章8

C 语言中,变量定义的位置可以分为 3 种:

  1. 在函数内定义。
  2. 在函数内的语句块中定义。
  3. 在函数外部定义。
    在函数内部定义的变量被称为局部变量,在函数外部定义的变量被称为全局变量。前几
    章编写的 C 程序中只包含一个 main 函数,并且变量也都定义在 main 函数中,因此前几章
    中定义的变量都是局部变量。
  1. 局部变量的作用域
    变量的作用域指的是变量的有效作用范围,而局部变量的作用域仅限于函数内部以及语
    句块中。
    局部变量的作用域需要分 2 种情况来讨论:
    (1)在函数内部定义的变量只在本函数范围内有效,也就是说只有本函数内才能引用,
    本函数之外都不能引用这些变量。
    (2)在函数内部语句块中定义的变量,只在本语句块范围内有效,也就是说只有在该语
    句块内才能引用,该语句块之外都不能引用这些变量。
    【出错的代码】
#include<stdio.h>
int main()
{
{
//语句块开始
int a=200;
}
//语句块结束
printf("a=%d\n",a); //出错代码
getchar();
return 0;
}

在 C 语言中,局部变量的作用域以花括号进行区分

#include<stdio.h>
int main()
{
int a=100;
{
int b=200;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
printf("a=%d\n",a);
getchar();
return 0;
}

语句块中可以定义变量,也必须定义在其他语句之前

#include<stdio.h>
int main()
{
int a=100;
printf("hello");
{
int b=200;
printf("a=%d,b=%d\n",a,b);
}
printf("a=%d\n",a);
getchar();
return 0;
}
  1. 局部变量使用前,必须初始化
    在 C 语言中,第一次对变量进行的赋值操作被称为初始化。变量的初始化分为两种情况:
    第一种 定义变量并且初始化,例如:
    int a = 10;
    //定义并且初始化
    第二种 先定义,后初始化,例如:
    int a;
    a=10;
    变量初始化本质上就是赋值,不过只有第一次给变量赋值才能被称为初始化。而变量赋
    值就没有次数限制了,第几次都可以。
    在 C 语言中,如果定义了局部变量,但是并未进行初始化,编译器并不会自动初始化局
    部变量,该局部变量的值将是未知的。因此,在程序中使用这样的变量是存在风险的。为了
    防止这种情况发生,在 VS2012 中,如果程序中使用了没有初始化的局部变量,调试程序的
    时候将报错(如果在运行模式下会输出不确定的值),下面通过例子来了解一下。
    【出错代码】
#include<stdio.h>
int main()
{
int a;
printf("a=%d\n",a); //出错代码,使用了未初始化的局部变量
getchar();
return 0;
}

运行结果如图所示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值