双指针问题
来源:互联网 发布:qq空间淘宝抽苹果手机 编辑:程序博客网 时间:2024/05/29 08:34
环境:VC++6.0
void a ( char *a )
{
a++;
}
void main()
{
char *p ="ABC";
a (p);
printf(p);
}
想要的效果是指针指向ABC字符串首字符A,经过A函数之后改变P指针指向下一个字符B。结果失败了。
结果:
ABC
函数a只是拷贝了p的值(A的内存地址)过去作自加,并没有对p本身作修改。因此,当打印P的时候并不是BC而是ABC。
修改程序如下:
void a ( char **a )
{
(* a) ++;
}
void main()
{
char *p ="ABC";
a (&p);
printf(p);
}
结果:
BC
函数a拷贝了P的内存地址,把该内存地址上的值即P(P保存了字符串的首地址)作自加,因此P指向了下一个字符B。
环境:VS2005
- #include "stdafx.h"
- void aa ( char **a )
- {
- (*a) ++;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- char *p ="ABC";
- aa (&p);
- printf(p);
- getchar();
- return 0;
- }
给函数传递地址时使用指针变量,改变指针的值时使用双指针。P保存的是A的内存地址,*P取的是该地址上的值即A,&P为保存P的内存地址。
- 双指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- 指针问题
- Android学习笔记之AndroidManifest.xml文件解析
- 数学建模
- 字符串操作
- VC中的trace
- Git学习笔记(二)
- 双指针问题
- druid简单教程
- 使用CocoaPods进行第三方资源管理(新机配置)
- 使用Unity3D是创业团队失败的原因吗?
- 苹果开发者帐号(Company)申请流程
- 关于Rocchio算法和向量空间模型反馈
- Unity3D学习:结合Kinect进行游戏开发
- 小编程题之大数据求和
- 苹果 开发者账号区别