目录
一.了解变量:
1.变量的基本概念
变量: 在程序运行时,可以发生改变的数据对象。
变量的本质其实就是相当于内存地址的一个编号(这个地址也是随机的),好比去食堂吃饭,食堂阿姨会给你一个号牌,我们可以根据这个号牌来领饭.其实在计算机的内存中也是这样的,可以根据这个变量的内存地址编号来找的对应的内容。
2.变量的组成
- 变量的组成: 变量由数据类型、变量名、分号组成。
- 数据类型: 可以是整型、浮点型、字符型,也可以是布尔型
- 变量名: 命名是有规范的,变量名可以包含数字、字符、下划线。但不能以数字开头,当然不能是关键字,比如int 、double等等。
二.变量的定义
1.变量如何定义
定义变量的格式: 变量类型 变量名列表 ;
示例代码:
int i ;
double d ;
float f ;
2.定义变量的注意事项
- C语言变量必须是“先定义,后使用”。
- 变量名列表是一个或多个变量序列,变量之间用逗号(,)隔开,最后要用分号(;)结束。
示例代码:
int a,b,c;// 多个变量
如果多个不同类型的变量列表一起定义,变量列表是要求变量类型要一致的,不然就要分开定义.
示例代码:
int a,b,c; // 正确
double d,e,f; // 正确
int w,e,r,double t ,y; //错误做法
三.变量的使用
1.步骤说明
变量的使用分为三个步骤:先定义,后赋值,再使用.
示例代码:
//方法1
// 第一步:变量定义
int num;
// 第二步:变量赋值
num=10;
// 第三步:使用变量
printf("%d",num);
//方法2
//当然也有简便写法,一步到位.
int num=10;
printf("%d",num);
2.变量的分类
局部变量:
局部变量一共有三个地方。
- 主函数开始地方内部定义
- 带有形参的函数内部
- 复合语句的代码块中
作用域:就是变量有效的地方。
生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
局部函数的作用域只有在本函数内有效, 主函数开始的地方定义的局部变量作用域就是主函数体内部,
带有形参的函数内部定义的局部变量的作用就是带有形参函数内部, 最后就是复合语句中局部变量的作用域就是代码块内部。
这里就看一下代码吧
例子1.主函数开始地方内部定义
示例代码:
int main() {
int a = 10;
printf("%d", a);
return 0;
}
在这个例子中,局部变量a ,此时的作用域就是整个main方法。
例子2.带有行参的函数内部
示例代码:
#include<stdio.h>
int add(int x,int y)
{
int sum=x+y;//局部变量
return sum;
}
这个例子中,变量x,变量y其实都是局部变量,当然变量sum也是局部变量.这三个局部变量的作用域就是这个形参函数内部。
例子3:复合语句的代码块中
int main() {
int j = 10;
int k = 20;
{
int c = j + k;//局部变量
printf("%d", c);
}
return 0;
}
这个是局部变量的最后一个例子了,这里的变量c是局部变量,作用域就是代码块内部(复合语句)。
下面就就介绍一下全局变量
全局变量:
定义:全局变量就是整个程序体都可以访问的数据对象。
- 全局变量作用域:整个工程文件。
- 生命周期:自程序创建到程序结束。
- 全局变量创建的地方:main方法外部。
示例代码:
#include<stdio.h>
int a = 10;
int main() {
printf("%d", a);
}
那么局部变量与全局变量的区别在哪里?
区别:
- 局部变量使用前必须要初始化,而全局变量使用可以不初始化,如果是整型默认是0,浮点型就是0.0,字符型就是'\0'。
- 全局变量的生命周期比局部变量长,作用域更大。
- 如果局部变量与全局变量同名,主程序体(main)会优先使用局部变量->局部变量优先级比全局变量高。
- 存放的地方不一样,局部变量创建会存放在栈上,全局变量则是存放在全局数据区。
其实,在变量分类中,还有一种特殊的变量类型,下面我们就来介绍一下静态变量吧.
静态变量:
- 定义:使用static关键字修饰的变量。
- 作用域:当前定义它的文件。
- 生命周期:与程序的生命周期相同。
静态变量创建的地方
- main方法开始的地方创建。
- 函数定义的内部创建。
- main方法外部创建。
例子1 main方法开始的地方
int main()
{
static int a =10;//静态变量
printf("%d",a);
}
在这个例子中 变量a是静态变量,如果没有static关键字进行修饰就是局部变量,这个地方的程序生命周期变长和作用域变大了。
例子2 函数定义的内部创建
#include<stdio.h>
void add()
{
static a=10;// 静态变量
}
这个例子中的变量a是静态变量,如果这个函数被调用结束的话,这个静态变量的生命周期不会因为函数销毁而销毁,会存放在静态区保存下来。
例子3 main方法外部创建
#include<stdio.h>
static int a=10;//默认是0
int main()
{
return 0;
}
这个例子中a是静态变量.作用域是当前定义的程序文件,生命周期和程序体生命周期一样。
静态变量的特点
- 只要是static修饰的变量都不用初始化,都会有默认值,整型是0 ,浮点型是0,字符型是'\0'。
- 在函数定义中,使用static修饰的变量,生命周期不会随函数调用而销毁,会在静态区保存下来,当整个程序结束会释放。
- 静态变量创建会存放在静态区中。
3.变量使用的注意事项
- 一定要先使用后赋值,如果是全局变量就不用赋值。
- 同一工程文件中,局部变量、全局变量、静态变量的名称不能重复。
- 变量名的命名一定不要错(开头数字或者自接用关键词命名)。
四.总结:
至此就到尾声了,本文介绍了什么是变量, 变量的如何定义 以及变量的使用等内容。如有错误或不足欢迎各位大佬积极评论。