目录
1.常量与变量
2.简单的求和
3.变量作用域和生命周期
常量与变量
常量的分类:
- 字面常量
- const 修饰的常变量
- #define 定义的标识符常量
- 枚举常量
1.字面常量
1.int main() 2.{ 3. 3.14; 4. 10; 5. 'a' 6. //这些都是字面变量 7. 8. return 0; 9.}
2.const 修饰的常变量
1.int main()
2.{
3. //const修饰的常变量
4. const int num = 10;//num是常变量-具有常属性(不能改变的属性)-本质还是变量
6. num = 20;
7. printf("num = %d\n",num);//此时系统会报错,因为const修饰后 num的值不可以改变
8. return 0;
9.}
3.#define 定义的标识符常量
1.#define MAX 10000
2.int main()
3.{
4.//若这里将MAX改变就是错的,因为max值不可以更改,已经被定义了
5.//MAX = 20000(错误)
6. int n = MAX;
7.printf("n = %d\n",n);
8. return 0;
9.}
4.枚举常量(可以一一列举的常量)
以性别(男性,女性,秘密)为例
1.enmu Sex
2.{
3. //这种枚举类型的变量的未来可能取值
4. //以下就是枚举常量
5. MALE
6. FEMALE
7. SECRET
8.};
9.int main()
10.{
11. enum Sex s = MALE;//变量s只可以在上面三种中选一种改变
12. return 0;
13.}
变量类型
- 浮点数变量
例如: double weight = 75.3
printf("%lf\n",weight)
注:单精度float 用“%f” ; 双精度double用"%lf\n"
- 局部变量 与 全局变量
1.//在外部定义的变量为全局变量
2.int a = 100;//全局变量
3.int main()
4.{
5. //在内部的变量就是局部变量
6. int a = 10;
7.printf("%d\n",a);
8.}
注:上面局部变量与全局变量冲突,按照“局部优先”输出结果
求和
1.//scanf是输入函数
2.int main()
3.{
4. int a = 6 ;
5. int b = 2;
6. scanf(%d %d,&a,&b)//表示将a,b分别存放到第一和第二个%d中
7. sum = a + b;
8. printf("sum=%d\n",sum);
9. return 0
10.}
注意:直接用scanf函数vs2013会报错,只需将scanf改为scanf_s(scanf_s不是c语言,是vs编译器提供的,其他编译器无法识别,第二个解决方法是在源文件第一行加“#define_CRT_SECURE_NO_WARNINGS 1”)
变量作用域和生命
- 变量作用域(这个变量哪里可以用,哪里就是它的作用域)
1.局部变量的作用域:就是变量所在的局部范围.
1.int main()
2.{
3. printf("hehe\n");
4. {
5. int a = 10
6. printf("a = %d\n",a);
7. }//这个括号内就是变量a的作用域
8. return 0
9.}
2.全局变量的作用域:整个工程
1.int g_val = 2022;\\全局变量
2.int main()
3.{
4. printf("1;%d\n", g_val); \\数字为表示第一次打印
5. {
6. printf("2;%d\n", g_val);\\第二次打印
7. }
8. printf("3;%d\n", g_val);\\第三次打印
9. return 0
10.}
全局变量的作用域整个工程理解:同一“源文件”但不同代码文件之间也可以用(跨文件)
注:要用 extern 声明才可以跨文件使用
生命周期
解释:从变量的创建到销毁之间的时间段
1. 局部变量的生命周期:从进入局部范围就是生命开始,出去局部生命就结束
2.全局变量的生命周期:就是程序的生命的周期(从程序开始到结束)
over