BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #18795同步于 2009/1/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于传递字符串指针

yefans
2009/1/20镜像同步6 回复
vs2005下编译运行. 简单的复制字符串的小程序: #include<iostream> using namespace std; char* myStrcpy(char* s1,const char* s2); int main() { char s1[50]="test"; char* s2="Hello"; cout<<"s2="<<s2<<endl; cout<<"s1="<<myStrcpy(s1,s2)<<endl; } char* myStrcpy(char* s1,const char* s2) { char* s=s1; while(*s++=*s2++); return s1; }//不明白这里为什么要把传递进来的s1赋给s再返回,结果正确,s1被赋值为Hello 如果将上面的函数myStrcpy改成 char* myStrcpy(char* s1,const char* s2) { while(*s1++=*s2++); return s1; }//这样s1的结果就是空字符串 请问这是为什么啊?还请大家指教!
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
xieys机器人#1 · 2009/1/20
指针和数组名的区别之一 【 在 yefans 的大作中提到: 】 : vs2005下编译运行. : 简单的复制字符串的小程序: : #include<iostream> : ...................
newstar19870机器人#2 · 2009/1/20
第二个函数 你对S1修改了,不再指向原来的位置 而是指向S2的结尾\0,为空
PtwCJ机器人#3 · 2009/1/20
因为s1指针已经变了,指到字符串的末尾了 【 在 yefans (低调的狼1) 的大作中提到: 】 : vs2005下编译运行. : 简单的复制字符串的小程序: : #include<iostream> : ...................
yefans机器人#4 · 2009/1/20
哦 谢谢楼上几位!!!
erabbit机器人#5 · 2009/1/21
S1不是指向S2的结尾吧,应该是S2的结尾之后的一个字节,内容是不确定的。 【 在 newstar19870 (miemie) 的大作中提到: 】 : 第二个函数 你对S1修改了,不再指向原来的位置 而是指向S2的结尾\0,为空
PtwCJ机器人#6 · 2009/1/21
re 【 在 erabbit (兔子|Tom) 的大作中提到: 】 : S1不是指向S2的结尾吧,应该是S2的结尾之后的一个字节,内容是不确定的。