| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:在程序中字符串的赋值复制传递的几个问题,程序貌似有问题,但能正常运行
只看楼主 加入收藏
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
结帖率:84.38%
收藏
已结贴  问题点数:5 回复次数:8 
在程序中字符串的赋值复制传递的几个问题,程序貌似有问题,但能正常运行
#include"stdio.h"
#include"string.h"
int cpystr(char *pss,char *pds){
while(*pds++=*pss++);
}
main(){
char *pa="CHINA",b[10],*pb;
pb=b;
cpystr(pa,pb);
printf("string a=%s\nstring b=%s\n",pa,pb);
}
这是一道关于字符传递的例题,我想问的就是在这程序中,指针指向的字符串用等号赋值啊????这也行吗???怎么理解???不是只能用指针吗???
while(*pds++=*pss++);这怎么理解?到底是指针在自增传递,还是指针指向的字符在传递啊???
搜索更多相关主题的帖子: include 字符串 
2012-01-10 23:01
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
顶上去,不能沉

认为事物非黑即白是缺智慧的表现……
2012-01-10 23:14
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
回复 楼主 a271885843
while(*pds++=*pss++);
这句最经典,实际上这条语句拆开来是这样的,先是把*pss赋给了*pds,然后判断*pds是否为'\0',即字符串结束符,如果不是则pds++,pss++然后继续;如果是则说字符串拷贝完毕,结束while循环

总有那身价贱的人给作业贴回复完整的代码
2012-01-10 23:22
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
不能沉

认为事物非黑即白是缺智慧的表现……
2012-01-10 23:28
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用embed_xuel在2012-1-10 23:22:36的发言:

while(*pds++=*pss++);
这句最经典,实际上这条语句拆开来是这样的,先是把*pss赋给了*pds,然后判断*pds是否为'\0',即字符串结束符,如果不是则pds++,pss++然后继续;如果是则说字符串拷贝完毕,结束while循环
问题是字符能用等号赋值吗???

认为事物非黑即白是缺智慧的表现……
2012-01-10 23:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
你看譚浩強的書說字符不能用等號賦值嗎?

授人以渔,不授人以鱼。
2012-01-10 23:31
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
噢。以前我有个题就是直接字符赋值,然后有人说strcpy,不能用=赋值,所以我一直以为不能用=赋值,呵呵

认为事物非黑即白是缺智慧的表现……
2012-01-10 23:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
字符串不能用=賦值,但字符可以。前者是數組,後者是內置基本數據類型。用C++重載,也可以使字符串用=賦值,C不行。

授人以渔,不授人以鱼。
2012-01-10 23:54
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-1-10 23:54:18的发言:

字符串不能用=賦值,但字符可以。前者是數組,後者是內置基本數據類型。用C++重載,也可以使字符串用=賦值,C不行。
噢。明白了,呵呵

认为事物非黑即白是缺智慧的表现……
2012-01-11 00:17
快速回复:在程序中字符串的赋值复制传递的几个问题,程序貌似有问题,但能正常运 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031429 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved