嵌入式学习——————第一站 C语言

初入嵌入式,经过两周的C语言学习,在此进行对C语言学习的大致的整体汇总,主要掌握了以下的知识点。

目录

Day1

一、计算机的基本组成

二、什么是程序

三、程序的设计步骤

四、计算机的数据表示

4.1非数值数据

4.2数值数据(进制转换)

4.3进制转换

五、基本数据类型

5.1基本数据类型

5.2有符号数和无符号数

5.3字符型家族

5.4整型家族

5.5浮点型家族

六、转义字符

七、常量

7.1字符常量

7.2整形常量

7.3浮点型常量

7.4字符串常量

7.5标识常量(宏)

Day2

一、变量

1.1局部变量

1.2全局变量

1.3存储类型

1.4初始化

1.5生命周期和作用域

二、数据类型转换

2.1强制类型转换

2.2隐式类型转换

三、运算符

3.1算数运算符

3.2关系运算符

3.3逻辑运算符

3.4sizeof运算符

3.5三目运算符

3.6逗号运算符

3.7位运算符

Day3

一、输入输出

1.1输出

1.2输入

二、字符的输入和输出

三、三大结构

3.1顺序结构

3.2选择结构

3.3循环结构

Day4

一、数组概念

二、数组定义

三、数组初始化

3.1部分初始化

3.2全部初始化

四、访问

Day5

一、冒泡排序

二、字符数组

三、字符串的输入输出函数

3.1字符串的输出函数

3.2字符串的输入函数

四、scanf和gets的区别

五、printf和puts的区别

六、字符串的处理函数

6.1求字符串的长度

6.2字符串的拷贝函数

6.3字符串的连接函数

6.4字符串的比较函数

Day6

一、二维数组的概念

二、二维数组的定义

三、初始化

3.1部分初始化

3.2全部初始化

四、访问

五、二维字符数组

六、函数

6.1函数的概念

6.2为什么要使用函数

6.3库函数

6.4自定义函数

Day7

一、指针的概念

二、什么是地址

三、指针变量

四、指针的定义

五、指针的赋值

六、空指针

七、野指针

7.1值传递

7.1地址传递

Day8

一、二级指针的概念

二、二级指针的定义

三、指针的算术运算

四、指针和数组的关系

4.1指针常量和一维数组的关系

4.2指针变量和一维数组的关系

五、冒泡排序

Day9

一、指针和二维数组的关系

二、数组指针

2.1数组指针的概念

2.2数组指针的定义

2.3数组指针和一维数组的关系

2.4数组指针和二维数组的关系

三、指针数组

3.1指针数组的概念

3.2指针数组的定义

3.3指针数组和二维数组的关系

Day10

一、const修饰

二、main函数传参

总结


Day1

一、计算机的基本组成

  • 输入输出设备
  • CPU处理器(控制器,运算器,寄存器)
  • 存储器(内存和外村)
  • 程序

二、什么是程序

  • 指令
  • 程序

三、程序的设计步骤

  • 编辑
  • 编译
  • 运行/调试

       

四、计算机的数据表示

4.1非数值数据

  • ASCII码表
  • 字符、图片、声音

4.2数值数据(进制转换)

  • 二进制
  • 八进制
  • 十六进制

4.3进制转换

  • 其他进制转十进制
  • 十进制转其他进制
  • 二进制八进制和十六进制的相互转换

五、基本数据类型

  • 关键字
  • 标识符
  • 命名规则

5.1基本数据类型

  • 32os中各个基本数据类型以及他们所占据多少字节
  • 64os中各个基本数据类型以及他们所占据多少字节

5.2有符号数和无符号数

  • 正数和负数以补码的形式保存在计算机中
  • 正数的补码、反码、原码
  • 负数的补码、反码、原码
  • 无符号数

5.3字符型家族

  • 值域范围
  • 超出值域范围的计算

5.4整型家族

  • 值域范围

5.5浮点型家族

  • float表示几位有效数据
  • double表示几位有效数据
  • %.nf输出小数点后n位

六、转义字符

  • 转义字符表
  • 一串字符串所占空间大小的计算

七、常量

  • 常量的概念

7.1字符常量

7.2整形常量

7.3浮点型常量

7.4字符串常量

7.5标识常量(宏)

  • 宏的定义
  • #define 宏名 表达式
  • 宏只是一个单纯的替换
  • 宏函数,括号保证优先级

Day2

一、变量

  • 变量的定义
  • 内存空间图
  • 存储类型,数据类型,变量名的含义

1.1局部变量

1.2全局变量

1.3存储类型

  • 四种存储类型
  • auto
  • static
  • extern
  • register

1.4初始化

1.5生命周期和作用域

  • 局部变量和全局变量的生命周期和范围
  • 被static修饰的局部变量和全局变量的生命周期和范围

二、数据类型转换

2.1强制类型转换

2.2隐式类型转换

三、运算符

  • 单算移关与,异或逻条赋
  • 单目运算符、算术运算符、左移、右移、关系运算符、按位与、异或、按位或、逻辑运算符、条件运算符、赋值

3.1算数运算符

3.2关系运算符

3.3逻辑运算符

  • 与和或的截断法则

3.4sizeof运算符

3.5三目运算符

3.6逗号运算符

3.7位运算符

  • 按位与 &
  • 按位或 |
  • 按位取反 ~
  • 异或 ^
  • 左移 <<
  • 右移 >>

Day3

一、输入输出

  • scanf,printf

1.1输出

  • 整型的输出格式
  • 字符型的输出格式
  • 浮点型的输出格式

1.2输入

  • 输入字符和数字的区别

二、字符的输入和输出

  • getchar()
  • putchar()

三、三大结构

3.1顺序结构

3.2选择结构

  • if else
  • switch case default

3.3循环结构

  • for与for嵌套
  • while
  • do...while
  • goto loop

Day4

一、数组概念

二、数组定义

三、数组初始化

3.1部分初始化

  • 部分初始化后 没有初始化的部分为0

3.2全部初始化

  • 全部初始化能省略元素个数

四、访问


Day5

一、冒泡排序

  • 排序思想
  • 代码实现

二、字符数组

三、字符串的输入输出函数

3.1字符串的输出函数

  • printf()
  • puts()

3.2字符串的输入函数

  • scanf()
  • gets()

四、scanf和gets的区别

五、printf和puts的区别

六、字符串的处理函数

  • strlen
  • strcpy
  • strcat
  • strcmp

6.1求字符串的长度

  • 不用strlen的代码实现

6.2字符串的拷贝函数

  • 不用strcpy的代码实现

6.3字符串的连接函数

  • 不用strcat的代码实现

6.4字符串的比较函数


Day6

一、二维数组的概念

二、二维数组的定义

三、初始化

3.1部分初始化

3.2全部初始化

  • 行数可以省略,但列数不可省略

四、访问

  • 使用for循环,实现对二维数组的每个元素进行访问

五、二维字符数组

  • 本质

六、函数

6.1函数的概念

6.2为什么要使用函数

6.3库函数

6.4自定义函数

  • 存储类型 数据类型 函数名 形参列表 函数体
  • 调用函数

Day7

一、指针的概念

二、什么是地址

  • 内存
  • 字节

三、指针变量

四、指针的定义

  • 指针指向的数据类型
  • 指针的数据类型
  • *和&
  • 32os的指针大小为4字节
  • 64os的指针大小为8字节

五、指针的赋值

  • 指针赋值的作用

六、空指针

  • 0号地址禁止操作

七、野指针

  • 局部指针不初始化
  • 避免局部指针措施--指向0号地址

7.1值传递

7.1地址传递


Day8

一、二级指针的概念

  • 指针的指针

二、二级指针的定义

  • 存储类型 数据类型 *指针变量名

三、指针的算术运算

  • p+1、p+n、p-q的移动距离
  • 注意指针指向的数据类型
  • 指针的算术运算在连续的内存空间中,才有意义

四、指针和数组的关系

  • 利用指针对数组进行操作

4.1指针常量和一维数组的关系

4.2指针变量和一维数组的关系

五、冒泡排序

  • 利用指针访问数组,实现冒泡排序

Day9

一、指针和二维数组的关系

  • &a、a、&a[0]、&a[0][0]
  • a不是int** 类型的原因
  • a、a[0]的指向

二、数组指针

2.1数组指针的概念

2.2数组指针的定义

  • 存储类型 数据类型 (* 变量名) [元素的个数]

2.3数组指针和一维数组的关系

2.4数组指针和二维数组的关系

  • 定义二维数组指针
  • 使二维数组指针指向二维数组
  • 通过二维数组指针操作二维数组

三、指针数组

3.1指针数组的概念

3.2指针数组的定义

3.3指针数组和二维数组的关系

  • 定义二维指针数组
  • 使二维指针数组指向二维数组
  • 通过二维指针数组操作二维数组

Day10

一、const修饰

  • 使用指针间接更改const修饰的变量
  • const修饰指针 左数右指

二、main函数传参

  • 字符串个数
  • 每一个字符串的地址


总结

以上就是对这两周C语言学习的总结了,嵌入式学习的下一站将会是对LinuxC的总结。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
sscanf函数是C语言中一个非常常用的函数,它可以将一个字符串按照指定的格转换成相应的数据类型。在嵌入开发中,sscanf函数也是非常常见的,因为很多时候需要从串口或者其他外部设备中读取数据,并将其转换成相应的数据类型进行处理。下面是一些sscanf函数的使用技巧: 1. 使用sscanf函数时一定要注意格字符串的正确性。格字符串中的占位符必须与待转换的数据类型相对应,否则会发生未知错误。 2. 如果待转换的字符串中包含多个数据,可以使用多个占位符进行转换。例如,如果待转换的字符串为"1,2,3",可以使用" %d,%d,%d"的格字符串进行转换。 3. 可以使用sscanf函数的返回值来判断转换是否成功。如果返回值等于待转换字符串的长度,则说明转换成功,否则转换失败。 4. 如果待转换的字符串中包含浮点数,可以使用"%f"或者"%lf"的格字符串进行转换。 5. 如果待转换的字符串中包含十六进制数,可以使用"%x"的格字符串进行转换。 6. 如果待转换的字符串中包含字符或字符串,可以使用"%c"或者"%s"的格字符串进行转换。 7. 如果待转换的字符串中包含指针类型的数据,可以使用"%p"的格字符串进行转换。 总之,在使用sscanf函数时一定要注意格字符串的正确性,否则很容易出现转换错误的情况。同时,还应该注意sscanf函数返回值的判断,以确保转换的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值