|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 朋友们帮忙看一个函数计算题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
585
人关注过本帖
标题:
朋友们帮忙看一个函数计算题
只看楼主
加入收藏
kate333333
等 级:
新手上路
帖 子:19
专家分:0
注 册:2007-2-16
楼主
收藏
问题点数:0 回复次数:6
朋友们帮忙看一个函数计算题
#include<stdio.h>
f(int a)
{
static c=0;
c=a+c++;printf("a=%d,c=%d\n",a,c);
return(c); /*怎么c值就分别成了3和7了呢*/
}
main()
{
int a=2,k,i;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
getch();
}
搜索更多相关主题的帖子:
朋友
函数
2007-03-04 15:43
举报帖子
使用道具
赠送鲜花
田里兵蜂
等 级:
新手上路
威 望:
2
帖 子:604
专家分:0
注 册:2007-1-29
第
2
楼
收藏
得分:0
static c=0;
c=a+c++;printf("a=%d,c=%d\n",a,c);
第一次
传入的a值为2
c=2+c++(c取值为0)
c=2;
因为是c++, 所以这个表达式执行完后,C要加1
C=C+1;2+1=3
/bbs/down.asp?html=470779" target="_blank">免费视频资源下载
2007-03-04 16:45
举报帖子
使用道具
赠送鲜花
moonwalker
等 级:
新手上路
威 望:
1
帖 子:909
专家分:2
注 册:2007-3-2
第
3
楼
收藏
得分:0
#include<stdio.h>
f(int a)
{
static c=0;
c=a+c++;
/*
第一次给f函数传递的a=2(a传递完就增为3),"++"是右结合性,等式右边C先增1才和a加,所以c=3
*/
/*
第二次a已经增为3,c是静态量还是3,自增变为4,所以c=7
*/
printf("a=%d,c=%d\n",a,c);
return(c); }
main()
{
int a=2,k,i;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
getch();
}
这个练习好像就是为了理解单目运算符++的优先级和结合性的
/bbs/down.asp?html=482910" target="_blank">“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-04 16:54
举报帖子
使用道具
赠送鲜花
crackerwang
等 级:
新手上路
威 望:
8
帖 子:833
专家分:0
注 册:2007-2-14
第
4
楼
收藏
得分:0
我比较同意二楼的说法,也就是第一次c=0;
看一下下面的程序就知道了
#include<stdio.h>
void main()
{
int c=0,d;
d=1+c++;
printf("%d %d",d,c);
}
输出的是1 1;
也就是首先是用c=0,加了之后c 在加1;
2007-03-05 12:38
举报帖子
使用道具
赠送鲜花
moonwalker
等 级:
新手上路
威 望:
1
帖 子:909
专家分:2
注 册:2007-3-2
第
5
楼
收藏
得分:0
不管怎样,我不赞同像“c=a+c++;”这样的语句,可读性、可移植性都不好
因为不同的操作系统可能操作数的执行顺序是不一样的
改写成 c=(a+c)++;
或 c=a+(c++);
这样就不会有歧义了!
/bbs/down.asp?html=482910" target="_blank">“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-05 23:17
举报帖子
使用道具
赠送鲜花
nuciewth
来 自:我爱龙龙
等 级:
贵宾
威 望:
104
帖 子:9786
专家分:208
注 册:2006-5-23
第
6
楼
收藏
得分:0
static c=0;
只有一 次赋初值.
第一次a=2;f(2){c=0,c=2+c++ --->c=3,Print(3);}a=3;
第二次a=3;f(3){c=3,c=3+c++ --->c=7,Print(7);}a=4;
倚天照海花无数,流水高山心自知。
2007-03-06 10:22
举报帖子
使用道具
赠送鲜花
kate333333
等 级:
新手上路
帖 子:19
专家分:0
注 册:2007-2-16
第
7
楼
收藏
得分:0
嗯,没有深刻体会县贡献值计算在自加的意义
谢啦
664934112
2007-03-06 13:03
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
朋友们帮忙看一个函数计算题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.047766 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved