王国探险记系列
文章目录(2)
注意:当你赋值小数的时候,编译器会自然认为你是一个double类型的,所以你在使用float类型的时候要在小数后面加个f,然后小数的类型才是float类型的。
生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
2.1局部变量进入作用域生命周期开始,出作用域生命周期结束。
前言
C语言王国探险记,是我们学习C语言,从小白成长为大佬的的探险历程,我们在这章将探险变量这个知识关卡
一、变量是什么?
变量是描述变化的量,有一些值总是在发生变化
比如:年龄,体重,薪资等等,
c语言中将那些变的量用变量来表示。
二、变量如何定义?
type name; 解释:一个数据类型后面跟着一个名称就组成了,变量的基本创建形式
实例如:
int num;
char c;
编辑
注意:当你赋值小数的时候,编译器会自然认为你是一个double类型的,所以你在使用float类型的时候要在小数后面加个f,然后小数的类型才是float类型的。
三,变量的命名
变量的命名的基本要求:
编辑
变量的命名的实例:
int 2*3;因为有*不是数字,字母,和下划线当中的所以不行
int 2b;因为开头不能是数字所以不行
int _2b;可以的因为开头可以是下画线
长度不能超过63个字符
int _2B;可以但是和上面的int _2b代表的是不一样的,所以是区分大小写的
C语言里面不能使用关键字
int char ;是不行的变量的名字不能是关键字
变量的名字尽量有意义一些不要胡起不要让被人看不懂你的变量的名字
四,变量的创建
我们使用代码加注释来解释创建的各个类型的变量
int main() { int zhangsan = 20;//我想创建一个整型变量, //名字叫zhangsan这样就可以了,创建的时候我想给他赋一个20,在名字后面加一个=20就可以了 int num = 0;//创建一个整数变量叫 num它的值是0;这样也可以 char ch;//创建一个char类型的变量ch double d;//创建一个double 类型的变量叫d return 0; }
五,变量的验证
我们使用代码加注释来解释创建的各个类型的变量
int main() { //为什么叫变量呢,变量是在说明他的值可变 int a = 10; printf("a=%d\n", a);//我们来打印验证一下,说明a确实可变 a = 100; printf("a=%d\n", a);//加个a=号表示的是在占位符前面加一个修饰,占位符会被后面的值替换掉 return 0; }
编辑
六,全局变量和局部变量
全局变量:在{}外边定义的变量就是全局变量,全局变量是都可以使用的,你想要达到什么样的状态就怎么样去使用就行
局部变量:就是{}内部定义的变量就是局部变量,在局部内可以使用
当一个局部变量和一个全局变量在一个地方都可以使用的时候就是,局部优先
具体实例直接在代码加注释,以及结果运行图了解
//全局变量:在{}外边定义的变量就是全局变量,全局变量的全都可以使用 //局部变量:就是{}内部定义的变量就是局部变量,在局部内可以使用 //当一个局部变量和一个全局变量在一个地方都可以使用的时候就是,局部优先 int a = 100;//当我们把变量放到大括号外面的时候被称为全局变量 int main() { printf("全局变量a-->%d\n", a); int a = 10;//在括号里面的时候被称为局部变量 { int b = 1000; printf("局部变量b-->%d\n", b);//局部变量b的使用 } printf("局部优先a-->%d\n", a);//虽然有全局变量a=100,但是我们有着局部优先原则,所以a打印为10 }
编辑
七,变量的作用域
1,作用域是什么:
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
解释:通俗来说就是这个变量在那里可以使用那里就是它的作用。
2,全局变量和局部变量的作用域
2.1,局部变量的作用域就是变量所在的局部范围。
理解:我们说的这个局部范围是从它开始定义开始向后的局部范围,局部变量的范围就是它的作用域。局部变量就好像你自己家的自行车,只能你们家里的人骑一样
下面是三个实例:代码,注释,和结果运行图可以证明
实例1:
int main() { { int a = 10;//10之所以可以正常打印, //就是因为在这个大括号里面创建的变量在这个大括号里面 //是可以在大括号里面使用是没有问题的 printf("%d\n", a); } } //a变量只能在自己所在的大括号里面使用,大括号就是他的作用域,
编辑
实例2:
int main() { { int a = 10;//在大括号里面定义的a只能在在里面看到出了大括号就看不到了 } printf("%d\n", a);//当我们把这个printf()放到外面,就会报错说是未定义的标识符a }
编辑
实例3:
int main() { int b = 100;//在它所在的范围内,定义的代码往后的都可以使用 { int a = 10; printf("%d\n", b); } printf("%d\n", b);//这个b是定义在大括号内部的,你在任意位置都可以使用 return 0; }
编辑
2.2,全局变量的作用域就是整个工程
理解:全局变量的作用域,是很广范的,就好像放在马路上的共享单车一样,谁都可以使用。
代码,注释,和结果运行图可以帮助理解:
int a = 100;//这是一个全局范围内的变量,在main()函数里可以使用,在自定义的函数里面也可以使用 void test()//我们单独在自定义的一个函数里面打印a, { printf("test()--->%d\n", a); } int main() { printf("main()-->%d\n", a); test();//调用这个test函数 return 0; }
编辑
3,全局变量还可以怎么使用
通过extern 的声明就可以使用其他文件的定义的变量
但是在一个项目的其他文件中不能定义多个a,因为存在多个就会造成重定义
全局变量的作用域是整个工程的,只要是合法的语法情况下都可以使用
更加说明了全局变量的作用域是非常广的代码,注释,和结果运行图可以帮助理解:
因为我们的代码验证需要两个文件里的代码使用我们将代码分为两段,并配上两段代码的文件截图
// 通过extern 的声明就可以使用其他文件的定义的变量 // 但是在一个项目的其他文件中不能定义多个a,因为存在多个就会造成重定义 //全局变量的作用域是整个工程的,只要是合法的语法情况下都可以使用 //更加说明了全局变量的作用域是非常广的 extern int a;//extern是用来声明外部符号 //声明来自其他文件的一些符号 //声明一下我有一个变量a,它的类型是整型,它来自外部 void test() { printf("test()--->%d\n", a); } int main() { printf("%d\n", a); test(); return 0; }
int a = 10; //我们在add.c里面创建一个全局变量,我们能不能在test.c里面使用呢
编辑
编辑
八,变量的生命周期
1,生命周期是什么:
生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
2,局部变量的生命周期
2.1局部变量进入作用域生命周期开始,出作用域生命周期结束。
代码,注释,和结果运行图可以帮助理解:
int main() { { int a = 100;//创建一个a变量等于100,代码从上往下执行执行到a的时候才有必要创建, //前面a都不存在所以没有存在的道理,到int a这一行才开始创建,生命才开始 printf("在生命周期内打印的a-->%d\n", a);//打印我们的a }//因为我们是在大括号内部打印,没有出a的生命周期所以可以打印成功 return 0; }
编辑
3,全局变量的生命周期
3.1全局变量的生命周期是整个程序的生命周期。
代码,注释,和报错截图可以帮助理解:
int main() { { int a = 100;//这种局部变量是进入它的作用域,创建,生命周期开始,离开作用域生命周期结束 //出了作用域就不能使用了,所以就结束,因为每一个变量都需要占用内存,当局部变量出了作用域, //这个变量就不能用了,还有必要让他进行占用内存吗?/没必要,所以它的生命周期就结束了 } printf("%d\n", a);//当我们运行的时候,就会报错 //同时我们出了大括号就不能使用a了, //因为a这个局部变量不能在被使用,所以a变量就被销毁了 return 0; }
编辑
全局变量的生命周期的总结:
全局变量的生命周期和程序的生命周期是一样的
程序从main()函数第一行开始执行,一直到main()函数的结束,就结束而在main()函数的整个生命周期中,全局变量都可以使用,那说明全局变量都存在,所以说main()函数的生命周期就是程序的生命周期,全局变量在这些周期中都可以使用的话,那么全局变量的生命周期其实是和我们程序的生命周期是相同的.
总结
以上就是今天要讲的内容,本文仅仅简单介绍了变量的基本概念及验证,可以让你在c语言王国的探险更加有趣,充实。