目录
一、变量
(1)定义变量
int age = 150;
float weight = 45.5f;
char ch = 'w';
(2)变量的命名
- 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
- 不能以数字开头。
- 长度不能超过63个字符。
- 变量名中区分大小写的。
- 变量名不能使用关键字。
(3)变量的分类
局部变量
全局变量
#include <stdio.h>
int global = 2019;//全局变量
int main()
{
int local = 2018;//局部变量
//下面定义的global会不会有问题?
int global = 2020;//局部变量
printf("global = %d\n", global);
return 0;
}
总结:
上面的局部变量global变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用。
(4)变量的作用域和生命周期
4.1作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
4.2生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
#include <stdio.h>
//作用域和生命周期
//局部变量的作用域:就是变量所在的局部范围
//全局变量的作用域:整个工程
int g_val = 2023;//全局变量
int main()
{
printf("g_val = %d\n", g_val);
printf("hello world\n");
{
printf("g_val = %d\n", g_val);
int a = 10;
printf("a = %d\n", a); //正确。a为局部变量,只可以在这个最近的{}中使用
}
printf("a = %d\n", a); //错误。a为局部变量,此处已位于局部变量a的作用域外
printf("g_val = %d\n", g_val);
}
二、常量
常量的分类
- 字面常量
- const修饰的常变量
- #define定义的标识符常量
#include <stdio.h>
#define MAX 100 //#define的标识符常量
int main()
{
//字面常量演示
double a = 3.14; //字面常量
int b = 1000; //字面常量
char c = 'a' //字面常量
//const 修饰的常变量
const float pai = 3.14f; //这里的pai是const修饰的常变量
pai = 5.14; //是不能直接修改的!
const int num = 10;//num就是常变量 - 具有常属性(不能被改变的属性)
//#define的标识符常量 演示
printf("max = %d\n", MAX);
return 0;
}
注:
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。