![](https://i-blog.csdnimg.cn/blog_migrate/10b77a9ebc71f444bf6cf135322d0b10.png)
首先我们来谈一谈生命周期,变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
它有两种生命周期:一种是局部变量的生命周期,另一种是全局变量的生命周期。
局部变量的生命周期:从进入作用于生命周期开始,出作用于生命周期结束。
![](https://i-blog.csdnimg.cn/blog_migrate/58b5cfe8d2adc25366e302cf1671769f.png)
也就是这张图里面的大括号内,从int进入,一直到return结束,局部变量的生命周期范围就在这里面。
全局变量的生命周期:也就是整个工程,他包括在另一源文件内,main函数外部等等,但是一旦有了static修饰,那么这个源文件的外部链接属性就会改变,改变成内部链接属性,从而使得全局变量的生命周期变短。
其次要讲的是C语言的常量:他包括字面常量,const修饰的常变量,#define定义的标识符常量以及枚举常量。
字面常量也就是“100,'w',3.14,"abcdef"”等等诸如此看到的常量,const修饰的常变量,其中const是常属性的意思,还有数组也是。
![](https://i-blog.csdnimg.cn/blog_migrate/925b99213cef3d94e083b2eedf76d596.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7c44e35efdbf973fedeeb4b51e354a61.png)
#define定义的常量
![](https://i-blog.csdnimg.cn/blog_migrate/68dae47dbd8001e0a1b76161c5d3df26.png)
#define也可以定义在大括号内,也可以放在数组内指定大小,arr[MAX],要注意#define后面不用加上“;”。
枚举常量:它的关键字是enum
枚举的意思就是一一列举(只要能被一一列举的东西就是枚举常量)
![](https://i-blog.csdnimg.cn/blog_migrate/9f5e7bec43bef9b4497a74c8eaf636ae.png)
最后也就是C语言表达字符和字符串了,
C语言表示字符由‘’单引号引起,例如‘w’,‘a’等等。
C语言表示字符串由“”双引号引起,例如“absa”等等。
由双引号引起的一串字符成为字符串。
字符串的结束标志是一个\0的转义字符,在计算字符串的长度的时候\0是结束标志,不算做字符串内容。
欢迎留言,谢谢。