2.1 定义变量的方法
int main()
{
//创建一个变量
int age=20;//类型 变量的名字=数值
return 0;
}
2.2 变量的分类:局部变量与全局变量
2.2.1 全局变量
int main之外,在所有函数外部定义的变量成为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件。
2.2.2 局部变量
int main之内,定义在函数内部的变量称为局部变量(Local Variable),它的作? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?用域仅限于函数内部, 离开该函数的内部就是无效的,再使用就会报错。
//全局变量与局部变量会发生冲突
#include<stdio.h>
int a=100
int main()
{
//在大括号内部的变量都是局部变量
int a=20;
printf("%d\n",a);
return 0;
}
//此时终端会输出20(当局部变量和全局变量名字冲突的情况下,局部优先)
//当然,不建议把全局变量和局部变量的名字写成一样的
2.3? 变量使用的实例(以简单的相加sum为例)
#include<stdio.h>
int main()
{
int a;//a,b,sum这几个变量可以在一开始赋值,也可以不赋值,对后面的结果不会产生影响
int b;
int sum;
scanf("%d %d",&a,&b);//输入的第一个数放到a中,第二个数放到b中
sum=a+b;
printf("sum=%d\n",sum);
return 0;
}
2.4? 变量的作用域和生命周期
2.4.1 作用域
?一个变量可以被引用的范围(如全局作用域、文件作用域、局部作用域),哪里可以使用,哪里就是他的作用域 全局变量:整个工程(整个源文件下的.c文件都可以用,但要先声明——extern) 局部变量:变量所在的局部范围
#include<stdio.h>
int g_val=2022;//全局变量
//不可以在这写 printf("%d\n",g_val) 执行性的代码要写到main函数中
int main()
{
printf("1:%d\n",g_val);
printf("hehe\n");
{
printf("2:%d\n",g_val);
int a=10;//局部变量
printf("a=%d\n",a);
}
printf("3:%d\n",g_val);
return 0;
}
2.4.2 生命周期
这个变量可以被引用的时间段。 全局变量:整个程序的生命周期 局部变量:进入作用域开始,出作用域结束
2.5? 常量(不变的量)
分为字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量
int main()
{
//字面常量
3.14;
10;
"a";
"abcdef";
}
#include<stdio.h>
//const修饰的常变量
/*int main()
{
int num=10;//num是变量
num=20;
printf("num=%d\n",num);//此时输出20
return 0;
}*/
int main()
{
const int num=10;//此时num为const修饰的常变量,num值不能被修改(常属性,不能被改变的属性)
//num=20;
printf("num=%d\n",num);//此时输出10
//const 修饰的常变量在C语言中只是在语法层面限制了变量num不能直接被改变,但是num本质上还是一个
变量,所以叫常变量。
return 0;
}
#include<stdio.h>
//define定义的标识符常量
#define MAX 10000//define也可以放在main函数里
int main()
{
int num=MAX;
printf("%d\n",num);
return 0;
}
#include<stdio.h>
//枚举常量,用性别来举例
enum Sex
{
MALE=3,//赋初值
FEMALE,
SECERT
//枚举一下这个变量的可能取值
};
int main()
{
enum Sex s=MALE;
printf("%d\n",MALE);
printf("%d\n",FEMALE);
printf("%d\n",SECERT);
//可以看到输出之后各个变量的值0、1、2
//枚举常量的值默认是从0开始,可以在enum处赋值
return 0;
}
|