C语言学习之路
4.4 变量的作用域和生命周期
作用域
通常来说,一段程序代码中所用到的名字并不总是有效/可用的, 而限定这个名字的可用性的代码范围就是这个名字的作用域
1.局部变量的作用域是变量所在的局部范围
2.全局变量的作用域是整个工程
生命周期
变量的生命周期指的是变量的创建到销毁之间的一个时间段
变量创建的本质是在空间内开辟一块空间存放数据,销毁是说清楚数据把空间还给操作系统
1.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束
2.全局变量的生命周期是:整个程序的生命周期
4.5 常量
· 字面常量
· const修饰的常变量
· #define定义的标识符常量
· 枚举常量
const修饰的常变量:
#define定义的标识符常量:
#include <stdio.h>
#define SIZE 10 //将SIZE定义为常量10
int main()
{
int a = SIZE;
int arr[SIZE] = { 0 };
//这里的SIZE相当于常量10
return 0;
}
枚举常量:
枚举 就是一一列举
#include <stdio.h>
//生活中有些值是可以一一列举的
//比如 性别:男、女
enum SEX
{ //列除了枚举类型enum的可能取值
//MALE,FEMALE是枚举常量
//初始值默认从0开始,依次向下递增1
//初始值能改变,但仅限在枚举时,比如 MALE=3 FEMALE就是4,SECERT就是5
MALE,//男
FEMALE,//女
SECERT
};
int main()
{
printf("%d\n",MALE);
printf("%d\n",FEMALE);
printf("%d\n", SECERT);
return 0;
}
5.1 字符串
"hello"
这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串。
注意:字符串的结束标志时一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算做字符串内容。
#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
char arr1[] = "hello";
char arr2[] = { 'h', 'e', 'l','l','o'};
char arr3[] = { 'h', 'e', 'l', 'l','o','\0' };
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
打印结果
5.2 转义字符
假如我们要在屏幕上打印一个目录: c:\code\test.c
我们该如何写代码?
#include <stdio.h>
int main()
{
printf("c:\code\test.c\n");
return 0;
}
实际上程序运行的结果是这样的:
这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。
下面看一些转义字符。
6. 注释
-
代码中有不需要的代码可以直接删除,也可以注释掉
-
代码中有些代码比较难懂,可以加一下注释文字
注释有两种风格: C语言风格的注释 /*xxxxxx*/ 缺陷:不能嵌套注释 C++风格的注释 //xxxxxxxx 可以注释一行也可以注释多行