pointer endianess sizeof()
来源:互联网 发布:java log4j 用法 编辑:程序博客网 时间:2024/05/01 00:47
#include <iostream>using namespace std;int main(int argc, char* argv[]){int a[5] = {1,2,3,4,5};cout<<sizeof(a)<<endl;int *ptr1 = (int *)(&a+1);int *ptr2 = (int *)((int)a+1);cout<<hex<<ptr1[-1]<<endl<<hex<<*ptr2<<endl; // negative index!cout<<dec<<sizeof(int)<<" "<<sizeof(a)<<" "<<sizeof(ptr1)<<endl; // remember to change back to dec!system("pause");return 0;}
running result:
20520000004 20 4
explanation:
1) sizeof(a) = 5*4
2) note that &a is the address of a, (&a+1) points to a[5] => ptr[-1] points to a[4]
3) 32-bit x86 system => little-endian
a[0] a[1]0x01 00 00 00 0x02 00 00 00
((int)a+1) points to the second byte of a[0] => ptr2 points to "00 00 00 02" => 0x02000000
- pointer endianess sizeof()
- CWE -- 不要误用 sizeof (pointer) -- 例子
- pointer
- Pointer
- SIZEOF
- Sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof............
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- sizeof
- 【构造】后缀数组求逆
- 【搬家】VB.NET开发全功能串口调试助手
- G711 G723 G729线路占多少带宽问题
- 设置输入法弹出时,处于焦点状态的控件所在界面保持原样
- Singleton 单例模式 -IOS开发
- pointer endianess sizeof()
- 给android设备增加串口功能
- 深入JVM之根类加载器的测试
- Oracle约束的4种状态小结
- 如何编写HTTP Servlet程序
- ftok的陷阱
- 对INIT_WORK的理解
- 深入JVM之类的主动使用和final关键字
- 开源软件_源码SVN地址