| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 457 人关注过本帖
标题:程序的解释
只看楼主 加入收藏
weishanhu03
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-4-24
收藏
 问题点数:0 回复次数:2 
程序的解释
编写函数 strcpy:
char *strcpy(char *strDest,const char *strSrc)
{
assert((strDest!=NULL)&&(strSrc !=NULL))
char *address = strDest;
while((*strDest++ = *strSrc)!='\0')
NULL;
return address;
}

请问:
while((*strDest++ = *strSrc)!='\0')
NULL;
这是什么意思啊?
*strDest++是什么意思呢?
菜鸟谢谢大家!
搜索更多相关主题的帖子: 解释 
2007-09-17 09:34
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
while((*strDest++ = *strSrc)!='\0')
这句应该有问题,strSrc一直没有变化,怎么能实现复制.
可以改为:
while((*strDest++ = *strSrc++)!='\0') ;/*空语句不需要加NULL,直接加上一个分号,就可以表示空语句了.*/

例如:*strDest++=ch;就是先将*strDest=ch;然后再将strDest++;

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-09-17 17:38
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 

const char *strSrc //const表示 strSrc所指向的字符串 在本函数内是可读但不能被修改的,

assert((strDest!=NULL)&&(strSrc !=NULL)) //assert是一个预定义在编译器中的 断言宏,表示括号内的表达式不成立的话 就执行预定的宏,在这儿目的是为
了防止 两个指针值为NULL,
char *address = strDest;// 是为了保留目的串的首地址,

while((*strDest++ = *strSrc)!='\0') // *strSrc后少了个 ++把, 这个就是将源串复制给目的串,当复制的字符是'\0'的时候跳出循环,
NULL; // 用NULL 是为了显示地表明此语句是 个什么也不做的空语句,防止漏掉分号,

return address; 返回被保留的 目的串的首地址.

2007-09-17 18:30
快速回复:程序的解释
数据加载中...
 
   



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

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