前言
你好,C语言(变量)
一、变量是什么?
变量就是表示数字的字母字符,具有任意性和未知性。
二、变量的类型
1.全局变量
简单来说,全局变量是定义在函数外部的变量,在程序任意处都可以使用。
举个例子:
#include<stdio.h>//第一个文件
extern int b ;
int main()
{
int a = 0;
a = 100;
printf("%d %d", b, a);
return 0;
}
int b=99;//第二个文件
?
?
?我们可以看到,即使b没有在主函数main中定义,但仍可以被主函数所调用,其实不管是在主函数中,还是用户定义的子函数中,还是其他文件中,,b(全局变量)都可以被调用。
全局的含义也因此而来。(全局—整个工程)
在程序中,尽量不使用全局变量,因为全局变量不可控,容易出错。
因此,全局变量在定义时要初始化,声明时加extern。
2.局部变量
局部变量,顾名思义,只在局部范围内起作用,出了被定义的函数,局部变量会被自动销毁。
举个例子:
#include<stdio.h>
int master();
int main()
{
int a = 100;
printf("%d\n",a);
master();
printf("%d\n", c);
return 0;
}
int master()
{
int c = 5;
printf("%d\n", c);
}
我们可以看到,编译器报错,未定义标识符"c",这里的c是指主函数部分的c,而我们定义c变量是在master这个子函数中定义的,这就是我们所说的局部变量,只在被定义的范围内起作用,而不能被除此范围以外的函数调用。
3.变量的使用?
使用变量很简单,需要变量就创建变量。(相当于,没有对象就new一个,嘿嘿)
4.局部变量名和全局变量名冲突
举个例子:
#include<stdio.h>
int master();
int a = 0;
int main()
{
int a = 5;
printf("%d\n", a);
return 0;
}
通过程序我们可以看到:
先定义了一个全局变量a,又在主函数中定义了一个局部变量a
而输出的结果是局部变量a的值。
由此可知,当全局变量名与局部变量名冲突时,局部变量优先(强龙压不过地头蛇)?
在实际操作中,不建议将全局变量名和局部变量名设置为同一名称。
三、变量的作用域与生命周期
1.作用域:简单来说,变量在哪里可以使用,哪里就是它的作用域?,出了作用域,变量就无法使用(就像鱼儿离了水无法生存)
1.全局变量的作用域:整个工程,可以跨源文件使用。
2.局部变量的作用域:变量所在的局部范围。?
2.生命周期:变量创建到销毁之间的一个时间段
1.局部变量的生命周期:从进入作用域(局部范围)生命周期开始,到出作用域生命周期结束。
2.全局变量的生命周期:整个工程的生命周期(与程序共存亡)。
感谢你看到这里,我是一名计算机专业在读的大学生,刚刚踏进C语言的世界,博文难免会有纰漏,希望大家可以指正。
|