指针问题
来源:互联网 发布:2016年癌症数据 编辑:程序博客网 时间:2024/05/01 13:02
请说明以下代码输出什么,并解释清楚
- #include <iostream>
- using namespace std;
- int main()
- {
- int a[5]={1,2,3,4,5};
- int *ptr=(int *)(&a+1);
- printf("%d,%d",*(a+1),*(ptr-1));
- return 0;
- }
我觉得应该把它看作是一个二围数组来理解,
&a+1 表示 数组a的行地址再加1 (一维数组行地址加1,即加1行) , 也即 &a+1=&a[5];
所以,int *ptr=(int *)(&a+1) 也即 int *ptr=&a[5];
因此:
*(ptr-1) = a[4] ;
*(a+1) = a[1];
&a+1 表示 数组a的行地址再加1 (一维数组行地址加1,即加1行) , 也即 &a+1=&a[5];
所以,int *ptr=(int *)(&a+1) 也即 int *ptr=&a[5];
因此:
*(ptr-1) = a[4] ;
*(a+1) = a[1];
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- vs2005直接编译WinCE6.0下的Media Player
- 【学习笔记】mysql索引原理之InnoDB
- java 读写文件参考2
- 如何通过GPS获取我当前所在的城市或街道
- Java 读写文件参考
- 指针问题
- 图像锐化
- Memcached数据被踢(evictions>0)现象分析
- 编程生涯的一次思想总结
- 详介oracle的RBO/CBO优化器
- stuts2中文乱码处理步骤
- 绑定mac和ip地址
- 图的邻接表表示
- OK6410 android opengl硬件加速实现