苏嵌嵌入式实训Linux第五天

课程内容:
1、位运算:&、|、^、<<、>>、~.
比如利用位运算讲一个输入的整数转化位n位的二进制的形式(利用位运算将其转化的过程会比利用加减乘除所需要的时间短,效率高)
2、宏指令(避免幻数):利用宏指令能使源文件在被维护的时候更加方便
#define MAX
#define SIZE
#define LONGIN_SUCCESS
利用宏去进行调试:
比如printf(“%s:%d\n”,FUNC,LINE);用于显示代码所在的函数名和行号
防止文件定义重复:
#pragma once(预处理,只引用一次)
#include……
3、编码规范
4、指针(8个字节)、数组(内存管理)
Int num =5; 假如num的空间地址0x1000——那么p++;指的就是0x1008(修改p对应的空间)
Int *p=# p指向的空间就是num的内存空间
Int **pp=&p; (*p)++;指的就是num的空间取值5+1(修改p指向的空间)
分清指向空间和对应空间
取值运算符 &取地址
多维指针的作用:保存前一维指针变量的地址;
万能指针:void
:可以接受任何类型的指针的值(不能取值和运算)
5、数组
Sacanf (“%d” , &a[i] ); printf( “ a [%d] =%d \n” , i , a[i] );
Sacanf (“%d” , a+i); printf( “ a [%d] =%d \n ”, i , *(a+i) );
一位数组名:指针常量,保存数组收元素的地址(所以不能a++:a是个常量)
也可以int *P=a;
Sacanf (“%d” ,p++ ) ;(p指的是数组的地址)

printf( “ a = %p \n”, i , a ); 二者输出的结果可能一样
但是第一个输出的是数组的首字节的地址,字节可能为4
printf( “ a = %p \n ”, i , &a ); 这个这是输出的是数组的地址,字节可能为4n(n代表的是数组的元素个数)

*(&a)=a;(取值和取地址互为逆运算)
结论:对一维数组的地址取值等于一维数组首元素的地址

作业:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值