| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:看看哪有问题
只看楼主 加入收藏
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
结帖率:50%
收藏
 问题点数:0 回复次数:8 
看看哪有问题
int a=2;
int f(int n)
{static int a=3;
int t=0;
if(n%2) {static int a=4;t+=a++;}
else    {static int a=5;t+=a++;}
return t+a++;
}
main()
{int s=a,i;
for(i=0;i<3;i++) s+=f(i);
printf("%d\n",s);
}
这个题有很多static int a ,到底应该以哪一个为主,请以第一次循环举下例子,详细的把第一次循环给讲一下,谢了

[[it] 本帖最后由 yt414204458 于 2008-8-29 11:07 编辑 [/it]]
搜索更多相关主题的帖子: 警告 
2008-08-28 22:10
benbenchuying
Rank: 1
等 级:新手上路
威 望:1
帖 子:52
专家分:0
注 册:2008-8-5
收藏
得分:0 
你仔细看看有很多地方没加分号
2008-08-28 22:56
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
呵呵~~~
2008-08-28 22:58
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
收藏
得分:0 
回复 2# benbenchuying 的帖子
晕了,刚刚不能运行,重打开了一下就可以了

一切从爱C开始
2008-08-28 23:13
咸鱼今天要翻身
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-8-27
收藏
得分:0 
#include <stdio.h>
2008-08-29 00:00
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
收藏
得分:0 
请重新看一下这个问题

一切从爱C开始
2008-08-29 19:36
wylhyly
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-8-28
收藏
得分:0 
寂寞的编程学习路有浮噪的音乐陪伴我
题目中又四个a,互不相同,说也说不清楚,你自己去调试吧
int f(int n)
{static int a=3;printf("%d\n",a);getch();
int t=0;
if(n%2) {static int a=4;t+=a++;printf("%d\n",a);getch();}
else    {static int a=5;t+=a++;printf("%d\n",a);getch();}
return t+a++;
}
2008-08-29 22:23
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
收藏
得分:0 
回复 7# wylhyly 的帖子
你可以标上序号给讲一下吗?这题调试了一下也有几个地方不明白

一切从爱C开始
2008-08-30 14:13
wylhyly
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-8-28
收藏
得分:0 
寂寞的编程学习路有浮噪的音乐陪伴我
把第一个全局静态变量a标记为a1,
把第二个f(int)函数内的局部静态变量a标记为a2,
把第三个在{ }内的局部静态变量a标记为a3,
把第四个在{ }内的局部静态变量a标记为a4,
与原程序是一样的。
要注意的是静态变量是编译系统在编译程序是完成的,程序运行时static int a=3,4,5;这三条语句并不再执行;还有编译系统碰到同名变量时是由近到远查找的;t+=a++;这条语句等同于 t+=a;a++;。讲到这儿我也不好意思了。
#include <stdio.h>
int a1=2;
int f(int n)
{int t=0;
static int a2=3; printf("a2=%d\n",a2);
if(n%2) {static int a3=4; t+=a3++; printf("a3=%d\n",a3); }
else    {static int a4=5;t+=a4++;printf("a4=%d\n",a4); }
return t+a2++;
}
main()
{int s=a1,i;
for(i=0;i<3;i++) s+=f(i);
printf("%d\n",s);
}
在初学的时候我也很模糊,其实只要有别人会的我肯定也会的自信,再去翻一下教科书就明白了。
2008-08-31 01:17
快速回复:看看哪有问题
数据加载中...
 
   



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

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