项目名称 |
【苏嵌实训-嵌入式 linux C 第 5 天】 |
今日进度以及任务 | 1、位运算 2、预处理 3、编码规范 4、指针 5、数组 |
本日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) |
|
本日开发中出现的问题汇总 | 无 |
本日未解决问题 | 无 |
本日开发收获 | 1、位运算: 2、预处理: 3、指针: 4、数组: 详细信息见下 |
其他 | 复习单链表 |
1、位运算:& | >> <<
(1)“无符号数”,“按位左移或右移”
(2)按位与运算---通常对某些位清0或保留某些位;按位或运算---通常用来将源操作数某些位置1,其他位不变;异或----使特定值取反
(3)32位进制转化16进制。’0’、’a’。
(4)不引入第三方变量,值互换:A、异或 B、+、-。
2、预处理:
傻瓜式操作,不安全,容易出错。
特点:省去函数调用返回的时间,省去了给形参分配空间和释放。
宏函数(用编译时间换内存空间和运行时间)
适用:频繁调用且功能短小的函数
3、指针:
(1)指针是一个变量,保存的是地址(作用:直接访问硬件)
(2)指针类型是根据存储的地址的类型
(3)*取值运算符,&取地址
(4)Int *pp=&p;int ***ppp =&pp
多维指针的作用:保存前一维指针变量的地址
(5)万能指针void*:可以接收任何类型指针的值
(6)野指针
4、数组:
对一维数组的地址取值等于一维数组首元素地址
*(*(aa+i)+j):
aa+i:二维数组中第i+1个一维数组的地址
*(aa+i):二维数组中第i+1个一维数组的首元素的地址
*(aa+i)+j:二维数组中第i+1个一维数组的第j+1个元素的地址
*(*(aa+i)+j):二维数组中第i+1个一维数组的第j+1个元素的值