目录
C语言的发展进程
特点
- 代码级别的跨平台
- 使允许直接访问物理地址,对硬件进行操作(C语言可以用来写系统软件)
- C语言是一个有结构化程序设计、具有变量化领域以及递归功能的过程式语言
- C语言传递参数可以是值传递,也可以是传递指针
- C语言中,没有对象,不同的变量类型可以用结构体组合在一起
- 预编译处理,生成目标代码质量高,程序执行效率高
编译过程中的知识点
- 生成解决方案只是生成了一个.exe文件,但是并不会将文件执行
- C语言严格区分大小写
C程序运行机制
- 源文件(.c文件)编译之后变成目标文件(.obj文件),同时还有C语言提供的库文件。目标文件与库文件相链接,链接之后变为可执行文件(.exe文件),运行之后,出现结果。
C语言开发注意事项
#include
void main(){
语句1;
语句2;
}
- C程序源文件以“C”为扩展名
- C程序的执行入口是main()函数
变量
变量注意事项
- 变量表示内存中的一个存储区域
- 该区域有自己的名称和类型
- 变量必须先声明,后使用
- 该区域的数据可以在同一类型范围内不断变化
- 变量在同一个作用域内不能重名
变量的数据类型
整数类型
- 在不同系统上,部分数据类型字节长度不一样,int表示2或者4
- bit(位):计算机中的最小存储单位;byte(字节):计算机中基本存储单元;
1byte = 8 bit
浮点数类型
- 浮点型变量默认为double类型,声明float型变量时,须在后加'f' 或'F'
- 浮点型变量:十进制数形式、科学计数法
- 通常情况下,应该使用double类型,它比float类型更精确
- 在输出时,默认保留小数点6位
字符类型
- 字符常量是用单括号(' ')括起来的单个字符
- C中还允许使用转义字符'\'来将之后的字符转变为特殊字符型常量
- 在C语言中,char的本质是一个整数,在输出时,是ASCII码对应的字符
- 可以直接给char赋一个整数,然后输出时,或按照对应的ASCII码字符输出(以%c形式输出)
- char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码
大写A的ASCII码是65
小写a的ASCII码是97
- 存储:字符'a'-->码值(97)-->二进制(1100001)-->存储()
- 读取:二进制(1100001)-->码值(97)-->字符'a'-->显示
布尔类型
- C99提供了一个头文件<stdbool.h>定义了bool代表_Bool
- true代表1,false代表0.
- 只要导入stdbool.h,就能方便的控制布尔类型了。bool flag = false;
#include<stdio.h> //宏定义 #define BOOL int #define TRUE 1 #define FALSE 0 void main() { int isPass = 1; if (isPass) {//0表示假,非0表示真 printf("未通过考试\n"); } /*isPass -= 1; if (isPass) { printf("通过考试"); }*/ //定义一个布尔变量 BOOL isOk = TRUE;//int isOk = 1; if (isOk) { printf("ok"); } getchar(); }
导入<stdbool.h>
#include<stdio.h> #include<stdbool.h> void main() { //定义一个布尔变量 bool isOk = true;//int isOk = 1; if (isOk) { printf("ok"); } getchar(); }
强制数据类型转换
- 当进行数据的从精度高-->精度低,就需要使用强制转换
- 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
#include<stdio.h>
void main() {
double d1 = 1.9344655;
int n1 = (int)d1;//不是四舍五入,直接截断小数点后的部分
int num2 = (int)1.5 * 10 + 6 * 1.5;//19
int num3 = 1.5 * 10 + 6 * 1.5;//24
int num4 = (int)(1.5 * 10 + 6 * 1.5);//24
printf("n1=%d\td1=%.4f\n", n1,d1);//1 1.9345
printf("num2=%d\n", num2);
printf("num3=%d\n", num3);
printf("num4=%d\n", num4);
}