| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 828 人关注过本帖
标题:小弟求救
只看楼主 加入收藏
majunjie991010
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2004-7-18
收藏
 问题点数:0 回复次数:5 
小弟求救

我有个程序看不懂:

main()

{

int a[]={2,4,6,8,10};

int y=1,x,*p;

p=&a[1];

for(x=0;x<3;x++)

y+=*(p+x);

printf("%d\n",y);

}

中的“y+=*(p+x)"的x是什么意思,在里面起到什么作用

谢谢各位大哥了!!!!

2004-07-18 10:17
我想要飞
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2004-6-15
收藏
得分:0 

这道题的结果是不是等于19啊!!

X是控制数组a的。如果把X换成i 就看的比较清楚了


个人宣言;黑暗的腹地,我睁开双眼, 世界哑口无言。。。
2004-07-18 11:59
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

恩~我也认为是19

*P是一个指针

y+=*(p+x)的意思是:y=y+*(p+x) 其中 P+X 表达的意思是P指针所指向的地址的数值向后移动X位

如果不要指针,这个程序其实可以写为:

main()

{

int a[]={2,4,6,8,10};

int y=1,x;

for(x=0;x<3;x++)

y=y+a[1+x];

printf("%d\n",y);

}


淘宝杜琨
2004-07-18 16:03
庸人
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-7-15
收藏
得分:0 

完全同意上楼的看法.

应该就是19

y+=*(p+x)的意思是:y=y+*(p+x) 其中 P+X 表达的意思是P指针所指向的地址的数值向后移动X位


QQ:408275776
2004-07-19 11:18
majunjie991010
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2004-7-18
收藏
得分:0 
谢谢大哥,小弟懂了,以后还要求助于你,

2004-07-20 15:07
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

应该+个“们”字

台下(嘘~~~人家又不表扬你,砸他!)


淘宝杜琨
2004-07-20 16:27
快速回复:小弟求救
数据加载中...
 
   



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

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