| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:帮我看下这个关于指针的处理哪不对了
只看楼主 加入收藏
YIGEMANTOUYI
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-7-24
收藏
 问题点数:0 回复次数:8 
帮我看下这个关于指针的处理哪不对了
char a[]="this is a game!",b1[30];
    char *p;
    int i;

    p=a;
    for(i=0;*p;i++)
        b1[i]=*(p+i);b1[i+1]='\0';
    printf("%s",b1);
我把红字部分换成P++就可以,但为什么这样不可以?
2012-08-20 23:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你是不是以为p+i就等于p=p+i

授人以渔,不授人以鱼。
2012-08-20 23:45
YIGEMANTOUYI
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-7-24
收藏
得分:0 
其实我也想过这个问题,可我认为 就算不用P+=i这种方式而直接引用*(P+i)不也是指向 a[i]么?
2012-08-20 23:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
问题是你的p总不动,*p的值不变,for()循环如何结束?

授人以渔,不授人以鱼。
2012-08-20 23:55
YIGEMANTOUYI
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-7-24
收藏
得分:0 
回复 3楼 YIGEMANTOUYI
图片附件: 游客没有浏览图片的权限,请 登录注册
2012-08-20 23:55
YIGEMANTOUYI
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-7-24
收藏
得分:0 
回复 3楼 YIGEMANTOUYI
啊!明白了 !!!
你说到重点了!
问题出在控制循环条件上的p了。

看来还是得加强逻辑能力训练。

多谢!
2012-08-20 23:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这正是开头问你是否以为p+i会改变p的原因。
下次记得放分,不然别人不答你问题,可不都像我这样是活雷锋哦。

授人以渔,不授人以鱼。
2012-08-20 23:59
YIGEMANTOUYI
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-7-24
收藏
得分:0 
好的,记得了。谢谢你的帮助。

早点睡吧,身体是用来奋斗而不是用来燃烧的。
2012-08-21 00:01
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
一个比一个盖帽

我要成为嘿嘿的黑客,替天行道
2012-08-21 02:31
快速回复:帮我看下这个关于指针的处理哪不对了
数据加载中...
 
   



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

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