指针+1的问题
来源:互联网 发布:mac safari 缓存 编辑:程序博客网 时间:2024/05/16 13:50
http://blog.csdn.net/wade23/article/details/4546119
指针 + 1 并不是指针代表的地址值 + 1.
指针变量加1,即向后移动1 个位置表示指针变量指向下一个数据元素的首地址。而不是在原地址基础上加1。至于真实的地址加了多少,要看原来指针指向的数据类型是什么。
char a = 'a';
char *p = &a;
cout<<(void*)p<<" "<<(void*)(p+1)<<endl;
输出:0012FF33 0012FF34
p指向的是一个字符,p+1就是移动一个字符大小,一个字符就是一个字节,所以p +1 代表的地址就比 p 代表的地址大1。
int i = 1;
int *p = &i;
cout<<(void*)p<<" "<<(void*)(p+1)<<endl;
输出:0012FF30 0012FF34
p指向的是一个整型,p+1就是移动一个整型大小,即移动4个字节,所以p+1代表的地址比p代表的地址大4.
这些操作是由编译器来完成的。所以,指针必须指向某个类型,这样编译器才能知道指针每次加1时真正内存的步长是多少.
0 0
- 指针+1的问题
- 指针的问题1
- 指针+1的问题
- 指针的指针问题研究
- 问题 : 指针的基本操作(1)
- 指针的问题!
- 指针数组的问题
- 野指针的问题
- 指针的指向问题
- 一个指针的问题
- 指针的赋值问题
- 关于指针的问题
- c指针的问题
- 对象的指针问题
- C++的指针问题。
- 关于指针的问题
- java 指针的问题
- 指针的大小问题
- MFC-贪吃蛇
- hdu2825Wireless Password【ac自动机+dp状态压缩】
- leetcode 226. Invert Binary Tree(二叉树的镜像)
- 用实力助跑2016
- 10、将数据库连接池集成到GenericityJDBCUtils中,以提高效率
- 指针+1的问题
- android studio ndk工程开发及调试指南
- PHP截取中英混合字符串(UTF-8)
- Android SDK下各目录的用途,以及在不同系统下哪些是通用的
- EasyUI DataGrid动态加载数据
- NY理工题 水池数目
- iOS UIView 一些属性方法总结
- http://www.tuicool.com/articles/mYfy6n
- 编写优美的GTest测试案例