| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 284 人关注过本帖
标题:亟待解决的问题!!!
只看楼主 加入收藏
我叫小杜
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:105
注 册:2011-6-11
结帖率:90.91%
收藏
已结贴  问题点数:5 回复次数:2 
亟待解决的问题!!!
main()
{int a=5,b=-1,c;
c=adds(a,b);
printf("%d",c);
c=adds(a,b);
printf("%d\n",c);
int adds(int x,int y)
{static(int m=0,n=3;
n*=++m;
m=(n%x)+y++;
return(m);}
结果为什么是2,3。求解析。
搜索更多相关主题的帖子: return 
2011-07-10 15:27
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:3 
       第一次调用adds,因为m,n是静态变量,所以n=n*(++m)=3*1=3;m=(n%x)+y++=(3%5)+(-1)++=2  //因为后加是在式子运算完之后才加到-1上的,所以最好m为2
       第二次调用adds,现在的m和n分别为2和3,所以按照上面的计算是3;
2011-07-10 15:35
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:2 
第一次
int adds(int x,int y)// x:5 y:-1
{static(int m=0,n=3;// m:0 n:3
n*=++m;//m:1 n:3
m=(n%x)+y++;//3%5 = 3 + (y++)返回-1 y变成0
return(m);}//结果为2
第一次
int adds(int x,int y)// x:5 y:-1
{static(int m=0,n=3;// m:2 n:3
n*=++m;//m:3 n:9
m=(n%x)+y++;//9%5 = 4 + (y++)返回-1 y变成0
return(m);}//结果为3

                                         
===========深入<----------------->浅出============
2011-07-10 15:44
快速回复:亟待解决的问题!!!
数据加载中...
 
   



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

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