| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 616 人关注过本帖
标题:[求助]一道简单的指针题
只看楼主 加入收藏
C之Itachi
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-7-16
收藏
 问题点数:0 回复次数:7 
[求助]一道简单的指针题
#include<stdio.h>
main()
{
char *s,c[80];
s=c;
gets(s);
while((*(++s))!='\0')
if(*s=='a') break;
else
{s++;gets(s);}
puts(s);
}

这个程序什么意思?
还有为什么这里puts(s);=printf("%s",s);而不是("%s",*s) 不是s是地址吗?

搜索更多相关主题的帖子: 指针 
2006-09-27 23:38
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

输入个一a时,程序中止,其它继续执行,如果将puts改成printf("%s",*s);输出<null>,在vc1.0下。


谁有强殖装甲第二部,可以Q我460054868
2006-09-28 09:18
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

在vc.6.0下,刚才写错。


谁有强殖装甲第二部,可以Q我460054868
2006-09-28 09:19
C之Itachi
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-7-16
收藏
得分:0 

输入apple回车
cat回车
为什么输出
at?


2006-09-28 10:38
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
碰到第二位以上為a的
輸出該字符串
因為s指向了a
所以是輸出axxxxxxxxx

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-28 11:30
jylqd
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-9-19
收藏
得分:0 

目的是干吗啊???


工欲善其事,必先利其器~~~~~~~~~~~~~~~~~~~~~~~~
2006-09-28 21:20
C之Itachi
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-7-16
收藏
得分:0 

没目的...一道题而已


2006-09-28 21:22
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用C之Itachi在2006-9-27 23:38:20的发言:
#include<stdio.h>
main()
{
char *s,c[80];
s=c;
gets(s);
while((*(++s))!='\0')
if(*s=='a') break;//遇到字符是a 的则跳出,此时的s已经指向字符a的地址.
else
{s++;gets(s);}
puts(s);
}

这个程序什么意思?
还有为什么这里puts(s);=printf("%s",s);而不是("%s",*s) 不是s是地址吗?

输入 apple  刚开始循环中的++s已经跳过apple的第一个字符a(既根本没有处理到a)此时if语句不成立,输入cat.此时的s已经指向c了,同样的道理,它会跳过c此时而直接处理字符a(此时s指向'a'),而结束循环,当然输出是at了.


倚天照海花无数,流水高山心自知。
2006-09-28 22:26
快速回复:[求助]一道简单的指针题
数据加载中...
 
   



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

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