C语言简史计算机基础计算机的定义计算机能进行计算和逻辑处理的设备。硬件组成计算机的物理部件内存条、CPU、硬盘等.开发中对于硬件的认知硬件包括电子设备、单片机、集成电路和嵌入式系统等。软件计算机中运行的程序和数据。开发中对于软件的认知软件分为系统软件OS、应用软件、编程工具编译器计算机的六大部件中央处理器CPU负责执行指令和运算数据内存临时存储运行时的指令和数据输入设备向计算机输入数据鼠标、键盘、扫码枪等输出设备将计算机处理结果输出显示器、打印机等外存设备永久存储数据硬盘、U盘等网络实现设备间数据传输与通讯计算及工作原理存储程序程序和数据预先存储在内存中程序控制CPU按照指令顺序逐条执行计算机语言语言类型特点示例机器语言二进制代码直接操控硬件执行效率最高10101000汇编语言用助记符表示机器指令需通过汇编器翻译为机器语言MOV AL,61H高级语言贴近人类语言可读性高需要编译成汇编语言再由汇编语言翻译为机器语言printf(hello\n);C语言简介C语言起源前身是B语言——1969年美国 Ken Thompson肯·汤普森并编写了unix1972年美国Dennis Ritchie丹尼斯·M·里奇 ——C语言之父C语言标准主要介绍目前常用的对新版本不加介绍年份标准名称说明1989C89ANSI 发布首个完整 C 语言标准1990C90ISO 一字不改采纳 C891999C99ISO 发布修订完善后的标准C语言特点简洁高效 支持底层硬件操作可直接访问内存地址 操作寄存器可移植性强、 符合标准的C程序可在不同平台Windows、 Linux、 嵌入式设备 间轻松移植适合结构化编程 代码模块化程度高、 容易维护、 容易调试生成代码质量高、 执行速度快接近汇编语言C语言程序的开发过程开发三步骤编辑由程序员编写源程序.c文件编译编译器将源码转换成可执行的二进制文件运行操作系统加载并执行可执行的二进制文件编译的过程预处理处理宏定义#define,头文件包含#include注释等将头文件内容直接拷贝到当前文件。预处理需要用到预处理器编译对预处理后的代码进行语法分析语义检查生成汇编语言。编译需要用到编译器汇编将汇编语言转换为二进制代码生成目标文件。汇编需要用到汇编器链接将目标文件与系统库文件、其他目标文件合并生成可执行文件。链接需要用到链接器---------------------------------------------------------------------------------------------------------------------------------C语言数据类型与常量C语言注释c语言中注释可分为单行注释和多行注释作用是解释代码、屏蔽临时无用代码不参与编译在预处理阶段删除。单行注释格式以//开头注释掉整行内容适用场景变量说明、 常量说明、 函数调用语句、 简单逻辑注释多行注释格式以/*开始*/结尾可出现在任意行不能嵌套适用场景文件头说明、 函数功能说明、 复杂代码块注释示例代码#include stdio.h //引用头文件 ​ int main() { /* int a 0; int b 10; */ ​ return 0; }文档注释实际上还是多行注释多用于生成标准化文档。代码示例/** * brief 函数名 main * author 开发者姓名 * date 开发时间 * param argc 解释参数 * param argv 解释参数 * return 返回值说明 */ int main() { return 0; }数据类型为什么要有数据类型概念在C语言中 不同类型的数字整数、 小数、 字符 在内存中占用的空间大小和存储方式是不同的。 数据类型就是固定大小内存的别名 它告诉编译器 这块内存要存什么 有多大 同时它还决定了数据怎么存。简单理解就是数据类型决定了数据在内存中如何存储 需要多大空间数据计算机需要处理的信息数字、文字、符号、图片、音视频等程序运行时所有数据都要加载到内存中。数据类型分类基本类型内置类型整型短整型short2字节基本整型int4字节长整型long32位系统4字节64位系统8字节长长整型long long浮点型单精度型float,4字节精度6~7位双精度型double8字节精度15~16位长双精度型long double16字节精度18~19位字符型char1字节构造类型用户基于C语言语法定义指针类型存储内存地址空类型void表示无类型用于函数返回值函数形参指针类型boolC99新增类型true非0false0sizeof运算符用来计算数据类型或变量的大小返回的是字节数。*注意数据类型的字节大小与C语言编译系统32位/64位、操作系统相关。常量包含整型常量、浮点型常量、字符常量、字符串常量、符号常量整型常量整型常量包括十进制、八进制、十六进制三种表示形式。表示形式十进制常量组成数字0~9不能以0开头0自身除外八进制常量组成数字0~7以0为前缀不能省略如077十六进制常量组成数字0~9A~F以0x/0X为前缀如0x2F后缀说明数值后加L/l表示长整型如long num 123L,仍表示123有符号和无符号有符号默认包含负数、0、正数如char,范围是-128~127无符号unsigned包含0和正数如char,范围是0~255面试题有符号数和无符号数的区别 是否有符号位 有符号位是有符号数 无符号位是无符号数 。浮点型常量浮点型常量小数/实数 有两种表示方式十进制小数形式组成数字0~9、小数点.必须包含小数点如0.123、-12.7后缀说明数值后加F/f表示浮点型如float f 0.12f指数形式科学计数法格式数字 e/E 整数指数e/E 表示10的幂次。示例正数1234.5→1.2345*1e3 或 1.2345e3负数0.012→1.2e-2注意e/E前面必须有数字0~9 其中小数点前的整数部分取值范围为 1~9 前导零 0 在数值上无意义 但C语法允许e/E后面必须是整数不能带小数 错误示例1.2345e3.5单精度常量需要加f/F 如1.2345e3F(float)、1.2345e3(double 默认)字符常量普通字符常量以 引起来的单个字符英文输入法下的字母、 数字、 符号等ASCII规范的字符。转义字符常量以反斜杠\开头的的特殊字符序列用于表示控制字符或不可见字符如换行符、 制表符。字符形式ASCII码中文解释用途\n10换行光标移动至下一行开头\r13回车光标移动至当前行开头\00空字符字符串结束标志重要\t9水平制表符相当于按Tab键8个空格\92反斜杠表示字符 \39单引号表示字符 34双引号表示字符 ASCII码表字符串常量以 引起来的字符序列C语言无内置的字符串类型要通过字符数组或字符指针来实现。字符串末尾以\0作为结束标记但不显示。sizeof计算字符串大小时要算上\0,strlen不用算。如int main() { char arr hello; return 0; } ​ // sizeof(arr) 6 // strlen(arr) 5符号常量以#define进行的宏定义比如#define M 5