标题:指针的简单问题[新手入门]
只看楼主
飞机火车
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-1-23
结帖率:80%
已结贴  问题点数:5 回复次数:6 
指针的简单问题[新手入门]
//这是一个字符串的复制部分正确代码
{
    while(*from!='\0')
    *to++=*from++;
    *to='\0';          //想问的是,*to是的位置在哪里
}
搜索更多相关主题的帖子: 字符串 
2017-01-30 00:16
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:2 
发完整的代码就一目了然了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-30 01:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
以下是引用飞机火车在2017-1-30 00:16:05的发言:

//这是一个字符串的复制部分正确代码
{
    while(*from!='\0')
    *to++=*from++;
    *to='\0';          //想问的是,*to是的位置在哪里
}

就象下面的代码,*to 就是 *strDest
#include <stdio.h>
#include <assert.h>

char *_strcpy(char *strDest, const char *strSrc)
{
    assert((strDest!=NULL) && (strSrc !=NULL));
    char *address = strDest;
    while((*strDest++ = * strSrc++) != '\0') NULL;
    return address;
}

main()
{
    char s1[]="ABCDE", s2[10];
    printf("%s\n", _strcpy(s2,s1));
}
2017-01-30 08:21
飞机火车
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2017-1-23
得分:0 
回复 3楼 吹水佬
*to会被赋值后覆盖掉么

没有解决不了的事情,除非逻辑本身是错的
2017-01-30 12:33
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:2 
回复 楼主 飞机火车
字符串复制,按一楼代码“\0”是复制不过去的,所以在字符串最后手工加上了“\0”,否则就不是字符串了。
2017-01-30 16:18
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:2 
*to之前应该被定义int char
我觉得*to=‘\0’应该被置零了,确切的说是值被置零了,地址不变,其地址在上段代码中未出现。


[此贴子已经被作者于2017-1-30 16:37编辑过]


我是硬件工程师
2017-01-30 16:30
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:0 
我觉得to的地址应该等于form的地址

[此贴子已经被作者于2017-1-30 16:46编辑过]


我是硬件工程师
2017-01-30 16:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-473883-1-1.html




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

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