C语言随笔3:指针定义、数据在地址中的大小端排列
2024-09-04 12:54:16
指针变量:用于存放另一个变量的地址
(指针变量所占空间大小由操作系统决定32/64位 4/8字节 //
声明且定义:int *p=&a;
声明、定义:int *p; p= &a;
Double *p =d;
(int)(p+1)-(int)p = 8;
P指针变量所代表地址 指向 double类型变量,所以p+1,是在double基础上,偏移8个字节地址。
不同类型的指针的区别:就在于+1时偏移量的不同。本质 都是32位或64位二进制变量;
超过1字节地址存放的变量,按照大小端格式在内存地址中排列
若p = 0x0010000;p+1 = 0x0010008;
关于大小端:
大端字节序: 高位字节数据存放在内的低地址处,低位数据存放在内的高地址处;
小端字节序: 高位字节数据存放在内的高地址处,低位数据存放在内的低地址处;
例如:0x01234567;01是数据高位
按照小端格式排列:
67|
45| 23| 01;
0x0010000;0x0010001;0x0010002;0x0010003;
若内存上按照顺序排列对象为:
01 23 45 67 89 ab
cd ef
0x0010000---0x0010007;
P=(Double *)0x0010004;(需为合法地址)
A=*p;
A的内容:A= 0x ef cd ab 89;(小端)
结构体定义:
u8 u16 u32 排列方式
不如u32 u16 u8
因为数据排列需要与地址对齐.
u8在地址中占完空间后,u16需要两个字节对齐 就会空出一个无效地址
若使用串口通信传数据,则有8bit的无效数据
u8 u32 u16 则会有三个字节的无效地址
最新文章
- 在树霉派上配置LAMP
- js截取url的参数(转自。。)
- MyEclipse10优化
- java编程思想-接口总结
- 求根号m(巴比伦算法)
- node相关--WebSocket
- Responsive布局技巧
- 用angularJS实现Bootstrap的“手风琴”
- Beaglebone Black–GPIO 开关 LED(三极管与继电器实验)
- Filebeat中文指南
- Inno Setup教程
- iOS 使用UILocalizedIndexedCollation实现区域索引标题(Section Indexed Title)即拼音排序
- 【百度地图API】暑假放假回老家——城市切换功能
- 模板不存在:./xx 错误位置 FILE: LINE:110 (thinkphp上传至服务器后模板无法解析原因)
- 从零开始学TensorFlow
- mysql 服务【安装】【启动】【停止】【卸载】【重置密码】
- 【代码笔记】Web-CSS-CSS Float(浮动)
- 一起学python-语法
- centos 后台挂起运行python
- 聊聊HTTP gzip压缩与常见的Android网络框架