CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

字符串地址的问题

楼主zhanshua()2006-03-04 01:23:27 在 C/C++ / 新手乐园 提问

这个程序是在字符串s的第i个位置插入字符串t  
  void   insert(char   *s,   char   *t,   int   i)  
  {  
  char   ss[100];  
  char   *p   =   s;  
  char   *q   =   t;  
  char   *r   =   ss;  
   
  strcpy(ss,   p);  
  p   +=   i   -   1;  
  strcpy(p,   q);  
  p   +=   strlen(q);  
  r   +=   i   -   1;  
  strcpy(p,   r);  
  //p-=i-1+strlen(q);   注意这里  
  }  
  为什么加不加p-=i-1+strlen(q);这行输出的结果是一样的呢?不加这行应该不是在字符串的第以个位置了阿? 问题点数:30、回复次数:7Top

1 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-04 09:43:16 得分 0

p是局部变量,不会该回到s的Top

2 楼yelling(Ray(←☆→射手))回复于 2006-03-04 10:01:35 得分 0

不影响到参数表的Top

3 楼province_(雍昊)回复于 2006-03-04 10:06:16 得分 0

所有的STRCPY全是针对S指向的内存地址的,拷贝结束后你再怎么折腾指针变量(而且还是局部)的数值也不会改变那段地址里的内容啊。Top

4 楼province_(雍昊)回复于 2006-03-04 10:07:57 得分 0

另外p   +=   i   -   1;  
  在I等于0的时候你看有什么问题吗?Top

5 楼zhanshua()回复于 2006-03-04 10:32:43 得分 0

你们的意思也就是说,形参和实参都是指向同一个地方,不管形参的地址怎么改变,实参的地址是不变的,改变的之是他的内容.Top

6 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2006-03-04 10:44:44 得分 0

strcpy(ss,   p);  
  p   +=   i;  
  strcpy(p,   q);  
  p   +=   strlen(q);  
  r   +=   i;  
  strcpy(p,   r);  
  Top

7 楼ugg(逸学堂(exuetang.net))回复于 2006-03-04 11:31:07 得分 0

//p-=i-1+strlen(q);   注意这里  
  ~~~~~~~~~~·  
  传递行参不会改变实参中的位置,所以上面这一句是没有用的。  
   
  Top

相关问题

  • 将字符串转换成MAC地址???
  • 怎么组成地址字符串?
  • 如何解析http地址字符串?
  • 39分求救!!如何得到字符串的首地址??
  • 能否用COUT输出字符串的首地址?
  • 如何得到地址所在的字符串长度?
  • 如何取一个字符串的地址?
  • 有没有函数判断一个字符串是IP地址?
  • 有没有函数判断一个字符串是IP地址?
  • 怎样去掉字符串里ip地址!

关键词

  • 字符串
  • 地址
  • strcpy
  • 实参
  • strlen
  • 改变
  • ss
  • 位置
  • 不会
  • char

得分解答快速导航

  • 帖主:zhanshua

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo