| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 509 人关注过本帖
标题:输出结果是多少呢?
只看楼主 加入收藏
yylcel
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2005-12-10
收藏
 问题点数:0 回复次数:7 
输出结果是多少呢?
#include <stdio.h>
void change_p(int *pi)
{
*pi+=2;pi+=2;*pi+=2;
}
int
main()
{
int *p,a[]={1,4,7,10};
p=&a[1];change_p(p);
printf("%d\n",*p);
}
我觉得是12啊~~
可运行后是6啊
谁帮我解惑~~
搜索更多相关主题的帖子: 结果 输出 
2006-01-10 14:35
spp509
Rank: 1
等 级:新手上路
威 望:1
帖 子:98
专家分:0
注 册:2005-11-23
收藏
得分:0 
#include <stdio.h>
void change_p(int *pi)
{
*pi+=2;--------------------------------就是4+=2,等于6,对吧
pi+=2;---------------------------------地址又+2,这时候pi指向的是a[3]
*pi+=2;--------------------------------10+=2
}
int
main()
{
int *p,a[]={1,4,7,10};
p=&a[1];
change_p(p);
printf("%d\n",*p);
}
你的主函数的p始终指向的是&a[1],以后的pi+=2;*pi+=2;都没关系了,所以结果是6,不知道我这样说你能明白不
#include <stdio.h>
int change_p(int *pi)
{
*pi+=2;
pi+=2;
*pi+=2;
return *pi;
}
int main()
{
int *p,a[]={1,4,7,10};
p=&a[1];
printf("%d\n",change_p(p));
}
如果这样就是12了

[此贴子已经被作者于2006-1-10 17:10:55编辑过]


一听就懂,一看就会,一做就错……
2006-01-10 17:10
giant
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-11
收藏
得分:0 

6
调用函数change_p():到这句“*pi+=2”指针p和pi指向的都是a[1],此时a[1]和*p和*pi的值都是6.到这句“pi+=2”指针pi就移向a[3],而指针p指向不动 还是指向a[1]。到这句“*pi+=2;”*pi和a[3]==10+2是12了。*p还是6

#include <stdio.h>

int change_p(int *pi)
{
*pi+=2;pi+=2;*pi+=2;
return *pi;
}
int main()
{
int *p,a[]={1,4,7,10},b;
p=&a[1];b=change_p(p);
printf("*p=%d\n",*p);
printf("b=*pi=%d\n",b);
printf("a[1]=%d\n",a[1]);
printf("a[3]=%d\n",a[3]);
return 0;
}


2006-01-10 17:45
giant
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-11
收藏
得分:0 

有人回答了,

2006-01-10 17:46
大米渣
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-1-10
收藏
得分:0 
呵呵,抢先了你不爽啊?

走那条路取决于你要到哪里去.
2006-01-10 19:36
yylcel
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2005-12-10
收藏
得分:0 
I see!太谢谢spp509,giant!
2006-01-11 10:27
小悟空
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2005-5-14
收藏
得分:0 
当然是6了,,,*pi+=2;pi+=2;*pi+=2;
*pi指的是a[1]值是4,,,*pi+=2;把*pi的值变成6~~~!!!

2006-01-11 10:43
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
形参和实参的关系

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-01-16 11:36
快速回复:输出结果是多少呢?
数据加载中...
 
   



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

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