内存地址值属于无符号的整型。
内存地址指系统 RAM 中的特定位置,通常以十六进制的数字表示。
在8086的实模式下,把某一段寄存器左移4位,然后与地址ADDR相加后被直接送到内存总线上,这个相加后的地址就是内存单元的物理地址,而程序中的这个地址就叫逻辑地址(或叫虚地址)。在80386的保护模式下,这个逻辑地址不是被直接送到内存总线,而是被送到内存管理单元(MMU)。MMU由一个或一组芯片组成,其功能是把逻辑地址映射为物理地址,即进行地址转换。
定义的类型必须相同,因为我有时候为了操作方便要指向当前指针的下一个地址只需p+1,p是一个指针变量。p+1不是简单的+1,而是根据你定义的指针不同做出调整,例如,我定义int * p,如果p+1,假设int占2个字节,p+1相当于p+2个字节,如果是float *p,float占4个字节,p+1相当于,p+4个字节。
地址字节简单来说是指地址是由多少字节组成。在计算机网络中存在多种地址,例如IP地址,MAC地址以及物理地址,一般来说不同地址字节数是不相同的。地址字节与很多因素,一般可以分为以下几类:地址的用途、有关应用协议版本或系统版本、硬件设计水平。
字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。
一个字节也可以表示一系列二进制位。在一些计算机系统中,4 个字节代表一个字,这是计算机在执行指令时能够有效处理数据的单位。一些语言描述需要2个字节表示一个字符,这叫做双字节字符集。一些处理器能够处理双字节或单字节指令。字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示。
变量的地址,在C语言中,一般写作指针类型。
不同类型的变量地址,用不同的指针进行保存。
比如,char 类型的地址,使用char*保存,而int型地址,用int *保存。
除此外,部分情况下也会采用整型类型来保存变量地址,具体使用何种整型类型,取决于编译器:
1 16位编译器,地址占16位,2字节,可以使用short或者int保存。
2 32位编译器,地址占32位,4字节,可以使用int或long保存。
3 64位编译器,地址占64位,8字节,可以使用long保存。
不过不推荐使用整型类型保存地址,会带来移植上的不通用。
UINT是无符号整形变量,占用两个字节,折合一个寄存器,占用一个MODBUS地址。REAL是单精度浮点型变量,占四个字节,折合两个寄存器,占用两个MODBUS地址。MODBUS协议中是按照寄存器编址的,每个寄存器占用一个地址,每个寄存器包含两个字节。
原文地址:http://www.qianchusai.com/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%9C%B0%E5%9D%80.html