ps:接上一篇先继续讲变量
1.变量
1.1 作用域:(限定名字可用性的范围,通俗讲就是变量能起到作用的那一块区域)
1.1.1 局部变量:局部变量所在的局部范围。
#include <stdio.h> int main() { int a = 10; //局部变量 printf("%d", a); //正常使用! { int b = 11; //局部变量 printf("%d", b); //正常使用! } printf("%d", b); //不能使用,因为不在局部变量所在的局部范围。 return 0; }
1.1.2 全局变量:整个.c项目。
#include <stdio.h> int a = 10;//全局变量 void test { printf("%d", a); //正常使用! } int main() { printf("%d", a); //正常使用! return 0; }
外部变量调用前必须声明(关键字:extern)
1.2 生命周期
1.2.1局部变量:进入作用域生命开始,出作用域生命结束。
1.2.2全局变量:整个程序的生命周期。(正因如此,.c文件里都可以调用,这样就不安全)
2.常量
分为字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量
2.1 字面常量就是一眼看出来的。
100 //整形常量 100.00 //浮点型 'A' //字符型 "abcd" //字符串
2.2 const修饰的常变量。
const是常属性的,定义的变量前面用const修饰就变成了常变量。
#include <stdio.h> int main() { int num = 4; //整型变量初始化 printf("%d", num); //打印出来是4 num = 3; //重新对num赋值 printf("%d", num); //打印出来变成了3 return 0; } int main() { const int num = 4; //被const修饰的变量,本质上还是变量,但是具有了常属性,不能被改变 printf("%d", num); //打印出来是4 num = 3; //num具有常属性,这里便出现错误 printf("%d", num); return 0; }
2.3 #define定义的标识符常量(宏定义)
#include <stdio.h> #define MAXSIZE 100 int main() { printf("%d", MAXSIZE); //打印出来就是100 }
2.4 枚举常量 (enum)
用于可以枚举出来的事
比如人的性别:男、女
#include <stdio.h> enum Sex { MALE = 5,//常量在这可以赋初值,在这里赋初始值后在后面不可在赋值,因为本质是常量 FEMALE = 6, }; int main() { enum Sex s = MALE; printf("%d", s); //打印出来是5 return 0; }
3.转义字符(改变了原来的意思)
举例:
想要打印双引号,但是这里显示出现错误,系统认为前两个双引号是一对,最后那个就会落单。
解决办法:
加上 \ 这样就正确了。单引号亦是如此。
\b(退格)用法:
\t(水平制表符)用法:
用途之一做一个菜单。
\ooo用法(o的范围是0~7,因为是进行八进制转化):
对63进行十六进制转化,对应在ASCII码表上打印出来的是字符型c。
总结\ooo和\xhh:\ooo是进行八进制转换的,\xhh是进行十六进制转化的,最终的值打印出来是对应ASCII码表上的。