|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 这题的答案怎么理解啊
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1403
人关注过本帖
标题:
这题的答案怎么理解啊
只看楼主
加入收藏
口香糖869
来 自:安徽
等 级:
新手上路
帖 子:9
专家分:0
注 册:2008-3-28
楼主
收藏
问题点数:0 回复次数:11
这题的答案怎么理解啊
#include<stdio.h>
void main()
{
int a,b;
a=1;
b=(++a)+(++a);
printf("a=%d\n",a);
printf("b=%d\n",b);
}
为什么运行结果为:
3
6
请高手帮忙解答
搜索更多相关主题的帖子:
printf
void
main
include
2008-03-28 23:17
举报帖子
使用道具
赠送鲜花
shmr0077
等 级:
新手上路
帖 子:3
专家分:0
注 册:2008-3-28
第
2
楼
收藏
得分:0
这是C的运算优先顺序造成的。括号里面的先进行运算最后进行加法运算。
2008-03-28 23:20
举报帖子
使用道具
赠送鲜花
广陵绝唱
等 级:
贵宾
威 望:
29
帖 子:3607
专家分:1709
注 册:2008-2-15
第
3
楼
收藏
得分:0
自加的运算级别比+高,所以先作自加;
a先自加二次,值为3;
然后再作两个a相加,b值为6;
a=1;
b=(++a)+(++a);
等价为:
a=1;
a=++a=2;
a=++a=3;
b=3+3=6;
基本就是这样的,希望你能理解。
2008-03-28 23:23
举报帖子
使用道具
赠送鲜花
口香糖869
来 自:安徽
等 级:
新手上路
帖 子:9
专家分:0
注 册:2008-3-28
第
4
楼
收藏
得分:0
回复 3# 的帖子
谢谢你的解释,我有点懂了
2008-03-28 23:27
举报帖子
使用道具
赠送鲜花
口香糖869
来 自:安徽
等 级:
新手上路
帖 子:9
专家分:0
注 册:2008-3-28
第
5
楼
收藏
得分:0
那大家在看看这题怎么理解
#include<stdio.h>
void main()
{int p,q;
int x=8,y=8;
p=(x++)+(x++)+(x++);
q=(++y)+(++y)+(++y);
printf("%d,%d,%d,%d\n",p,q,x,y);
}
运行结果为:
24,31,11,11
2008-03-29 09:02
举报帖子
使用道具
赠送鲜花
duxinjun123
等 级:
新手上路
帖 子:52
专家分:0
注 册:2007-7-6
第
6
楼
收藏
得分:0
++x 是先自加后参加运算,x++是先运算后自加
2008-03-29 10:55
举报帖子
使用道具
赠送鲜花
广陵绝唱
等 级:
贵宾
威 望:
29
帖 子:3607
专家分:1709
注 册:2008-2-15
第
7
楼
收藏
得分:0
回复 5# 的帖子
很欣赏你的学习态度,很认真,呵呵。
不过题是这么出的,主要是为了让我们初学的时候掌握a++与++a的区别,实际编程的时候,一般不会这么写的。
这些道理弄清楚了,就可以了,编程的时候,把这些许多的++、--的省略了吧,一般用一个两个就可以了。
2008-03-29 12:33
举报帖子
使用道具
赠送鲜花
口香糖869
来 自:安徽
等 级:
新手上路
帖 子:9
专家分:0
注 册:2008-3-28
第
8
楼
收藏
得分:0
谢谢
我觉得也只能这么理解了,我问了许多老师,他们也没有办法解释。
呵呵
2008-03-29 15:16
举报帖子
使用道具
赠送鲜花
now
来 自:广州
等 级:
新手上路
帖 子:544
专家分:0
注 册:2007-11-9
第
9
楼
收藏
得分:0
书中有很多题目都是在让人去钻牛角尖,有时难得糊涂一回也是好事
GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-03-29 15:41
举报帖子
使用道具
赠送鲜花
广陵绝唱
等 级:
贵宾
威 望:
29
帖 子:3607
专家分:1709
注 册:2008-2-15
第
10
楼
收藏
得分:0
回复 8# 的帖子
哪个老师?是在敷衍你,还是他真的不会?做学问做到这种程度,还谈什么传道、授业、解惑?
p=(x++)+(x++)+(x++);
q=(++y)+(++y)+(++y);
这题很简单,如果是TC类的编译器,结果应为:24、33、11、11。
x++是用过x后再加, ++y是在用y之前就自加。就好比说:x++是在今天卖过货后,货再涨价,++y是在今天早上没卖货时,就涨价了。而由于运算级别的问题,两个式子都是变量的自增运算级别高。
p=8+8+8=24,之后x值为11;
q=11+11+11=33,之后y值为11。
你再好好想一想,然后去把道理告诉那个老师。
2008-03-29 17:07
举报帖子
使用道具
赠送鲜花
12
1/2页
1
2
快速回复:
这题的答案怎么理解啊
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.047008 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved