赞
踩
指针(Pointer)是C语言的一个重要知识点,其使用灵活、功能强大,是C语言的灵魂
指针与底层硬件联系紧密,使用指针可操作数据的地址,实现数据的间接访问
将由小到大的数字依次存储在由小到大的地址中,这种存储方式叫小端分配
数组内部不同变量之间也是按地址由小到大的顺序来储存,中间没有存储别的数据。
同样的如果是short c[ ]这样的类型,那么每个数据内部是按short的方式储存,即分2个字节储存,不同数据之间又是按顺序储存的
1,乘号
2,定义指针
3,取出数据
指针在加减的时候是以一个数据为基本单位的,否则就没有意义了。
如果定义的是int型的指针,那么进行加减相当于是加减4个字节。
- float num;
-
- unsigned char *p;
-
- p=(unsigned char *)#
使用指针传递大容量的参数(数组),主函数和子函数使用的是同一套数据,避免了参数传递过程中的数据复制,提高了运行效率,减少了内存占用
使用指针传递输出参数,利用主函数和子函数使用同一套数据的特性,实现数据的返回,可实现多返回值函数的设计
(形参与实参,保证子函数与主函数的数据稳定性,子涵数的参数设置为指针,就避免了数据的复制但是此时子涵数可以改变数据,除非加上const修饰。)
数组储存用指针实现的等效方法:
Const修饰避免子涵数擅自修改主函数传递过去的数据
使用指针传递,实现多返回值函数的设计
C语言的库函数例如strcpy( ),将鼠标移动到括号的位置,可以发现其定义也是用的指针
将模块内的公有部分返回,让主函数持有模块的“句柄”,便于程序对指定对象的操作
(这里的公有部分简单的说就是全局变量,注意不能是局部变量,因为在调用函数结束,局部变量就会被销毁)
例如这里就是用的GetTime函数来使得主函数可以修改Time数组内的数据:
C语言文件功能对指定的位置创建文件,并储存数据
C语言文件功能对指定的位置读出文件,并显示数据
RAM处的单片机ID识别:
程序区的单片机ID识别: (前缀加上code表示的是定义在ROM内的地址)
(例如在不同的设备之间通信的时候传输浮点型数据)
这里不方便展现不同设备之间的数据交流,所以用程序内的不同模块来模拟,其中AirData是发送到空中的数据
大致原理:将浮点数转化为char型,一个字节一个字节的发送出去。然后接受到了以后将char转化为float型进行解码,打印输出。
空中数据模块
发送数据模块
接受数据模块
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。