数组名称和指针变量加减后,实际指向的值(转)
来源:互联网 发布:免费发型设计软件下载 编辑:程序博客网 时间:2024/05/18 03:23
int main(int argc, char ** argv)
{
int a[5] = {1, 2, 3, 4, 5};
int *ptr = (int*)(&a + 1);
printf("%d, %d", *(a + 1), *(ptr - 1));
return 0;
}
这个程序打印出的结果应该是 2, 5。
因为在指针移位时,是以sizeof(T)(T是指针指向的类型)。
所以&a + 1移位时,移了 sizeof(a)个,也就是5 * 4(x86结构)=20个。
而在后边,ptr的类型为int* 所以,一次向后移4个字节,故结果是5.
{
int a[5] = {1, 2, 3, 4, 5};
int *ptr = (int*)(&a + 1);
printf("%d, %d", *(a + 1), *(ptr - 1));
return 0;
}
这个程序打印出的结果应该是 2, 5。
因为在指针移位时,是以sizeof(T)(T是指针指向的类型)。
所以&a + 1移位时,移了 sizeof(a)个,也就是5 * 4(x86结构)=20个。
而在后边,ptr的类型为int* 所以,一次向后移4个字节,故结果是5.
- 数组名称和指针变量加减后,实际指向的值(转)
- 数组的指针和指向数组的指针变量
- 指针数组和指向指针变量的指针
- 指向一维数组的指针变量和指向二维数组的指针变量---注意其指针表示
- 指针数组、指向指针的指针变量、指向一维数组的指针变量 区别联系
- 指向数组的指针和指针数组
- 指针数组和指向指针的数组
- 指针数组和指向数组的指针
- 指针数组,和指向指针的指针
- 指针数组和指向指针的指针
- 指针数组和指向指针的指针
- 数组指针和指向指针的指针
- 指向多维数组的指针变量
- 指向多维数组的指针变量
- 指向多维数组的指针变量
- 指向多维数组的指针变量
- 指向多维数组元素的指针变量
- C语言学习-----指针篇(1)-----指向多维数组的指针和指针变量
- [VC] 冒号(:)与C/C++
- js调用flex中as方法出错的解决办法
- zoj 1813
- 学习笔记3_关于网络排行客户端的两点技术
- Java_Struts2_Struts2标签使用
- 数组名称和指针变量加减后,实际指向的值(转)
- Linux RedHat 6 调整分辨率 Display Adjustment
- Windows下配置使用MemCached
- pageContext对象
- 正则表达式基础知识语法
- 关于gcc的stack size
- DevExpress: 给ASPxGridView 加右键菜单 ASPxPopupMenu
- Win7主题背景目录
- wpf数据绑定失败