c语言问题,请问下面程序运行结果为什么是10,28,帮忙简单讲解下,谢谢

[复制链接]
查看11 | 回复3 | 2011-9-19 01:23:24 | 显示全部楼层 |阅读模式
#include\"stdio.h\"intb=2;intfun(int*k){b=*kb;return(b);}main(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i4;i){b=fun(printf(\"%d\",b);}p
回复

使用道具 举报

千问 | 2011-9-19 01:23:24 | 显示全部楼层
首先i=2;a[2]=3传进fun函数里面到了fun函数里面,b=3b;注意,这里的b是外边定义的全局变量intb=2;因此,全局变量b=5所以b=fun(b就等于55=10,第一次输出10第二次i=3;a[3]=4传进fun函数里面到了fun函数里面,b=4b;这时全局变量b已经为10了,所以全局变量b=410=14所以b=fun(b就等于1414=28,第二次输出28不懂可追问
回复

使用道具 举报

千问 | 2011-9-19 01:23:24 | 显示全部楼层
i=2时,a[2]=3;b=2b=23=5;(此时,b等于5了。)b=5b=55=10;(此时b等于10了)i=3时,a[3]=4;b=410=14(此时,b等于14了。)b=1414=28;这里主要考察的是全局变量的使用,全局变量一个地方发生了变化,另一个地方也发生了变化。
回复

使用道具 举报

千问 | 2011-9-19 01:23:24 | 显示全部楼层
结果1028将函数打开(*kb)b当i=2时a[2]=3将3带入fun()返回b=5;这时b已经等于5了在b就等于10第一次结果10ii=3a[3]=4;因为刚才b=10了所以将4带入fun()返回14这时b=14在b就等于28第二次结果28
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行