在 C 语言的学习过程中,变量和常量是非常基础且重要的概念,今天就来和大家详细聊聊它们相关的知识。
一、变量的分类
在 C 语言里,变量主要分为两类:
- 局部变量:它是在 “{}” 内部定义的变量,作用范围局限在这个花括号所限定的局部区域内。
- 全局变量:相对地,全局变量是在 “{}” 外部定义的变量,其作用域更为宽泛,能在整个工程当中发挥作用。需要注意的是,当全局变量和局部变量名字相同的时候,按照规则是局部变量优先被使用哦。
二、变量的使用
在 C 语言中,我们常用到两个函数来进行数据的输入输出操作。
- scanf 函数:这是一个输入函数,它能够帮助我们接收用户输入的数据。例如,像下面这样的代码:
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0; //初始化
//输入两个整数
scanf("%d %d", &num1, &num2);
//后续可以进行其他操作,比如对输入的数据进行处理等
return 0;
}
在上述代码中,通过scanf
函数按照指定的格式(%d
表示整数格式)接收两个整数,并分别存储到num1
和num2
变量中。
- printf 函数:它是一个输出函数,用于将我们想要展示的数据输出显示出来。比如:
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d %d", &num1, &num2);
int sum = num1 + num2;
//输出
printf("%d\n", sum);
return 0;
}
这段代码先是通过scanf
接收两个整数,计算它们的和存到sum
变量里,然后利用printf
函数将sum
的值输出显示出来。
三、变量的作用域和生命周期
- 局部变量:
- 作用域:它的作用域就是变量所在的局部范围,也就是定义它的那个花括号内部。一旦超出这个范围,就没办法再直接访问这个变量了。
- 生命周期:从进入它的作用域开始,它的生命周期就启动了,等到出了作用域,生命周期也就随之结束了。
- 全局变量:
- 作用域:全局变量的作用域覆盖整个工程,在不同的函数或者文件等只要符合相应的访问规则,都可以对其进行访问和使用。
- 生命周期:它的生命周期贯穿整个程序的生命周期,从程序开始运行到结束,它一直存在。
四、常量
在 C 语言中,常量也有多种不同的类型呢。
- 字面常量:
像30
(整型字面常量)、3.14
(浮点型字面常量)、'w'
(字符型字面常量)、"abc"
(字符串字面常量)这些都是字面常量,它们在代码中直接以这样的形式呈现,代表固定的值。 - const 修饰的常变量:
在 C 语言里,虽然用const
修饰的变量(比如const int a = 10;
)本质上还是变量,但是它不能直接修改,具备了一定的常量属性。像下面这样的代码是会报错的哦:
#include<stdio.h>
int main()
{
const int a = 10; //在c语言中,const修饰的a本质是变量,但是不能直接修改,有常量的属性
a = 20;
printf("%d\n", a);
return 0;
}
因为它被const
修饰后,就限制了直接修改它的值的操作。
3. #define 定义的标识符常量:
我们可以通过#define
来定义标识符常量,例如:
#include<stdio.h>
#define MAX 100
int main()
{
printf("%d\n", MAX);
int a = MAX;
printf("%d\n", a);
return 0;
}
这里通过#define
定义了MAX
为常量100
,在代码中可以像使用普通常量一样去使用它,并且其值是固定不能被改变的。
4. 枚举常量:
通过enum
关键字来定义枚举类型,里面列举出来的就是枚举常量啦。比如:
#include<stdio.h>
enum Color
{
//枚举常量
RED,
GREEN,
BLUE
};
//性别
enum Sex
{
MALE,
FAMALE,
SECRET
};
int main()
{
//三原色
//Red GREEN Blue
int num = 10;
enum Color c = RED;
return 0;
}
这里定义了Color
和Sex
两个枚举类型,像RED
、GREEN
等就是枚举常量,它们在对应的枚举类型中有自己特定的含义和固定的值(默认从 0 开始依次递增赋值)。
总之,理解好 C 语言中变量和常量这些概念以及它们各自的特点、使用方式等,对于我们后续深入学习 C 语言编程可是非常关键的哦,希望今天的分享能帮助大家更好地掌握它们。