| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:指针与函数问题
只看楼主 加入收藏
zmrfff
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2008-10-21
结帖率:95.83%
收藏
已结贴  问题点数:50 回复次数:7 
指针与函数问题
读了这道程序,有几个地方分析不清楚,希望大家指点,谢谢!
#include <stdio.h>
void fun(int *s)
{
    static int j=0;
    do
        s[j]+=s[j+1];
    while(++j<2);
}
void main()
{
    int k,a[10]={1,2,3,4,5};
   for(k=1;k<3;k++) fun(a);
   for(k=0;k<5;k++)  printf("%d",a[k]);
}
我看不大明白for(k=1;k<3;k++) fun(a);这条语句起什么作用,分析不出来><
搜索更多相关主题的帖子: 数组名作函数参数 
2009-08-09 20:03
西园竹
Rank: 5Rank: 5
等 级:职业侠客
帖 子:41
专家分:305
注 册:2009-8-8
收藏
得分:5 
你分析fun的作用就知道了,第一次调用将0-2三个数都加上后面的数,以后调用则依次
2009-08-09 20:27
紫ing~
Rank: 4
来 自:中科大
等 级:业余侠客
帖 子:103
专家分:273
注 册:2008-11-25
收藏
得分:30 
程序代码:
#include <stdio.h> 
void fun(int *s) 
{ 
    static int j=0;         
     /*由于j是静态变量,保存上次调用的结果,所以k=1时循环2次,得s[0]=3,s[1]=5; 
      k=2时只循环一次,得s[2]=7*/ 
    do 
        s[j]+=s[j+1]; 
    while(++j<2); 
} 
void main() 
{ 
    int k,a[10]={1,2,3,4,5}; 
   for(k=1;k<3;k++) fun(a);    /*调用函数fun(),循环2次*/ 
   for(k=0;k<5;k++)  printf("%d",a[k]); 
} 

唯有天道恒在,往复循环,不曾更改。。。
2009-08-09 22:43
libingchen_2
Rank: 2
等 级:论坛游民
帖 子:22
专家分:62
注 册:2009-8-7
收藏
得分:10 
for(k=1;k<3;k++) fun(a);两次调用函数fun(),把数组a的地址传个指针变量s。
2009-08-10 15:15
飘到心海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:145
注 册:2009-5-3
收藏
得分:0 
回复 3楼 紫ing~

当k=2时调用fun函数,此时j不重新赋值为0吗?
2009-08-10 15:51
xiaogu149162
Rank: 2
等 级:论坛游民
帖 子:47
专家分:97
注 册:2009-7-16
收藏
得分:0 
再次调用FUN函数
2009-08-10 15:57
libingchen_2
Rank: 2
等 级:论坛游民
帖 子:22
专家分:62
注 册:2009-8-7
收藏
得分:5 
以下是引用飘到心海在2009-8-10 15:51的发言:回复 3楼 紫ing~当k=2时调用fun函数,此时j不重新赋值为0吗?
j是static类型  保留上次的值2
2009-08-10 16:06
zmrfff
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2008-10-21
收藏
得分:0 
谢谢紫ing~,您说得很清楚^^我明白了!
2009-08-10 20:58
快速回复:指针与函数问题
数据加载中...
 
   



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

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