| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖
标题:求下程序答案!
只看楼主 加入收藏
nba199044
Rank: 2
等 级:论坛游民
帖 子:21
专家分:23
注 册:2012-3-21
结帖率:100%
收藏
 问题点数:0 回复次数:11 
求下程序答案!
main()
{   char  a[10]={'1','2','3','4','5','6','7','8','9',0},*p;
int i ;
i=8;
p=a+i;
printf("%s\n",p-3);
}

我做了半天,指针很成问题,为什么要输出  6789这么多呢?
2012-03-31 13:43
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:0 
因为你的输出格式是%s
2012-03-31 13:46
nba199044
Rank: 2
等 级:论坛游民
帖 子:21
专家分:23
注 册:2012-3-21
收藏
得分:0 
回复 2楼 飞莲
能不能详细帮我讲下啊,谢谢
2012-03-31 13:52
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:0 
回复 3楼 nba199044
%s,输出到空字符位置才会停下.a[10]的最后一个元素就是空字符.所以会从6开始输出到9停下
2012-03-31 14:04
nba199044
Rank: 2
等 级:论坛游民
帖 子:21
专家分:23
注 册:2012-3-21
收藏
得分:0 
回复 4楼 飞莲
终于懂了,谢谢啊
2012-03-31 15:44
明明白白
Rank: 2
等 级:论坛游民
帖 子:57
专家分:61
注 册:2012-3-19
收藏
得分:0 
她说的不对,%s是从此地址开始到0结束标志!你最后那个0就相当于0结束标志。如果你把零改为别的数字,那他最后就会因为找不到0结束标志而出现乱码
2012-03-31 17:17
飞莲
Rank: 2
等 级:论坛游民
帖 子:42
专家分:64
注 册:2011-12-28
收藏
得分:0 
回复 6楼 明明白白
0本来就是空字符`
2012-04-01 00:22
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
空字符是哪本书上说的?

总有那身价贱的人给作业贴回复完整的代码
2012-04-01 07:27
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:0 
其实,我也不懂
2012-04-01 07:33
jackhuang
Rank: 2
等 级:论坛游民
帖 子:16
专家分:52
注 册:2012-3-30
收藏
得分:0 

main()
{   char  a[10]={'1','2','3','4','5','6','7','8','9',0},*p;
int i ;
i=8;
p=a+i;//此处指针p指a[8],也就是数字9
printf("%s\n",p-3);//指针向前移动三位刚好指对a[5],把a[5]作首地址输出,因输出为字符串内型,所为后面也输出了!
}
2012-04-01 08:56
快速回复:求下程序答案!
数据加载中...
 
   



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

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