一个c语言小程序看不懂,在线等解

[复制链接]
查看11 | 回复2 | 2011-3-5 11:02:21 | 显示全部楼层 |阅读模式
#include"stdio.h"

int t;

int sub(int *s)

{*s+=1;

t+=*s;

return t;

}

main()

{int i;

for(i=1;i<4;i++)

printf("%4d",sub(&i));

getch();

}
这边t的值是什么啊?望大侠从头到尾说一下这个题目谢谢

回复

使用道具 举报

千问 | 2011-3-5 11:02:21 | 显示全部楼层
t是全局变量,如果没初始化,则使用系统默认值,int类型的默认值为0。当i = 1时,刚开始t = 0,sub(&i)之后;i = 2,t = t + 2 = 0 +2= 2。第二次循环,i++;i = 3,sub(&i)之后i = 4 ;t = t + i = 2 + 4 = 6;此时i< 4 不成立,所以循环结束所以最后结果是2
6
回复

使用道具 举报

千问 | 2011-3-5 11:02:21 | 显示全部楼层
首先定义了指针*s,默认初始化为0,*s+=1,开始*s=0,然后加1,再将指针s的值赋给t,int sub(int *s)
{*s+=1;
t+=*s;
return t;
}这里面就是将指针指向的数赋给t。for(i=1;i<4;i++)至于这里面的1,就是for循环里面的初值而已。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行