| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 684 人关注过本帖
标题:结果为什么是10?
只看楼主 加入收藏
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
结帖率:83.33%
收藏
 问题点数:0 回复次数:14 
结果为什么是10?
这个程序的输出结果为什么会是10
here iskey
main()
{ char *s,*s1="here is";
char *s2="key";
s=s1;
while(*s1)s1++;
while(*s1++=*s2++);
s2=s;
while(*s2)s2++;
printf("%d\n",s2-s);
printf("s=%s\n",s);
}
搜索更多相关主题的帖子: 结果 
2007-07-26 23:10
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
这个程序应该有Runtime Error.
指针s1指向的内存不可写,但是你写了
2007-07-26 23:47
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-07-27 11:17
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
main()
{ char *s,*s1="here is";
char *s2="key";
s=s1; //保存S1地址
while(*s1)s1++; //s1指向s的末尾'\0'
while(*s1++=*s2++); //把s2拷贝到s的末尾 此时s="here iskey"
s2=s; //把s2指向s
while(*s2)s2++; //s2指向s的末尾'\0'
printf("%d\n",s2-s); //输出s的长度
printf("s=%s\n",s); //输出s
}
2007-07-27 12:22
aoaoaoao
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-5-14
收藏
得分:0 
以下是引用anlogo在2007-7-27 12:22:19的发言:
main()
{ char *s,*s1="here is";
char *s2="key";
s=s1; //保存S1地址
while(*s1)s1++; //s1指向s的末尾'\0'
while(*s1++=*s2++); //把s2拷贝到s的末尾 此时s="here iskey"
s2=s; //把s2指向s
while(*s2)s2++; //s2指向s的末尾'\0'
printf("%d\n",s2-s); //输出s的长度
printf("s=%s\n",s); //输出s
}

while(*s1++=*s2++); //把s2拷贝到s的末尾 此时s="here iskey"
这一步就错了把

2007-07-27 13:36
bluecomputer
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-7-18
收藏
得分:0 

同意二楼的...s1是字符串的首地址,相当于一个指针常量...我用VC运行,编译没错,但运行出错

[此贴子已经被作者于2007-7-27 16:22:51编辑过]

2007-07-27 16:21
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
......程序没错把,晕~~
2007-07-27 21:43
yuezheng710
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-27
收藏
得分:0 

运行通过,没有问题呀,环境是TC2

2007-07-27 22:15
ZSXCT
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-7-10
收藏
得分:0 

main()
{
char *s,*s1="here is";
char *s2="key";
s=s1;
while(*s1) s1++;
while(*s1++=*s2++);
s2=s;
while(*s2) s2++;

s1=s;你把S的首地址付S1就能打因出
printf("%s",s1);

}

2007-07-27 22:35
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
收藏
得分:0 
以下是引用bluecomputer在2007-7-27 16:21:18的发言:

同意二楼的...s1是字符串的首地址,相当于一个指针常量...我用VC运行,编译没错,但运行出错


还不是很懂,S1是指针,指针地址为什么不可以自增呢?

2007-07-27 23:21
快速回复:结果为什么是10?
数据加载中...
 
   



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

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