当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 学习笔记 > 嵌入式学习笔记:指针函数详解

嵌入式学习笔记:指针函数详解 时间:2018-09-26      来源:未知

1. 指针:(数据类型)

保存地址的数据类型;

2. 指针变量:(保存地址的变量)

指向p:保存p的地址

3. 变量的首地址:&变量名;

4. 指针的定义:

类型名 变量名;

类型名 * 变量名;(*表示指针变量);

(指针的计算=====类型名)

定义:先*,后变量名,后类型名。

Int -3 *-1 p -2 ;

5. 指针所占字节(数据类型)

在32位系统中,占4个字节;

6. 指针变量类型:(去掉变量名)

Int * * ppf ;

7. 指针定义结束后必须初始化,避免野指针;

8. 内存空间的访问:

直接访问:通过变量名的方式访问;

间接访问:通过地址的方式访问;

9. 取值运算符:*地址;和&是互逆运算;

10. 取址运算符:&变量名;(首地址)

11. 段错误:

操作非法的内存空间;(操作野指针);

使用系统未经分配给自己的内存空间;

12. 空指针NULL 宏定义为0

13. 指针初始化:=NULL;

14. *指针变量==等于变量名,而不是内存空间存放的常量;

int i=5, *p=&i;

*p=8; //正确,更改i的值。

答案:B.C

B: *p2不建议使用;查看非法内存空间;

D: *p2=*p1; 操作(写)非法内存空间;

15. 指针(地址)的运算(数组名的运算)

物理地址=绝对地址+地址偏移

P+i ===== p+i*sizeof(数据类型)

16. 数组元素的指针访问:

若P=arr; //p=&arr[0]

则:

*(P+i)==*(arr+i)==arr[i]==p[i]

无条件:arr[i]=====*(arr+i)

P[2]===*(p+2)==a[7]

17. 数组编程技巧:(连写)

int i , *p=&i ;

18. 函数:

返回值类型 函数名 (形参列表)

函数的入口: 形参;调用时分配内存空间)

参数传递:值传递;地址传递;

参数传递为副本模式,地址传递时若要需要加const

函数的出口:返回值;副本模式

19. GDB调试

1. 编译带调试参数的可执行文件。

2. 设置断点b 运行r

3. next 语句(n) ; step 单步 (s)

4,。退出q;

20. 函数的声明

形参变量名可省略;但是定义时不可缺省。

21. 二维数组名:(数组名是一个指针)

22. 技巧:

元素下标【】:隐含有*

上一篇:嵌入式学习笔记:linux进程通信之信号函数

下一篇:嵌入式学习笔记:什么叫驱动模块,这里告诉你

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部