注册
登录
论坛
搜索
私人消息 (0)
公共消息 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
应用通知 (0)
应用邀请 (0)
万卷图书
»
算法
» 复合运算应用
返回列表
发帖
发短消息
加为好友
wangyu
当前离线
UID
471
帖子
31
精华
0
积分
0
阅读权限
10
在线时间
6 小时
注册时间
2010-5-23
最后登录
2010-6-10
新手上路
1
#
跳转到
»
倒序看帖
打印
字体大小:
t
T
wangyu
发表于 2010-6-6 08:57
|
只看该作者
复合运算应用
应用
,
运算
,
复合
#include<stdio.h>
main()
{
int a;
printf("please input:\n");
scanf("%d",&a);
a+=a*=a/=a-6;
printf("the result is %d\n",a);
}
a+=a*=a/=a-6 这一复合运算如何运算的呢?请老师举例说明吧,谢谢老师
收藏
分享
分享到:
QQ空间
腾讯微博
腾讯朋友
发短消息
加为好友
wangyu
当前离线
UID
471
帖子
31
精华
0
积分
0
阅读权限
10
在线时间
6 小时
注册时间
2010-5-23
最后登录
2010-6-10
新手上路
2
#
wangyu
发表于 2010-6-6 09:26
|
只看该作者
是否有运算优先级的问题呢
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1558 小时
注册时间
2009-7-30
最后登录
2024-5-16
管理员
3
#
fwbook
发表于 2010-6-7 09:12
|
只看该作者
这个主要复合运算符的优先级。
+= -= *= /=的优先级都非常低,并且遵循的是右结合。所以整个表达式最先计算的是
a/=a-6
假设a=7,则
a/=a-6=a/(a-6)=7
然后运算
a*=a/=a-6=a*(a/=a-6)=7*7=49
最后运算
a+=a*=a/=a-6=a+(a*=a/=a-6)=49+49=98
TOP
发短消息
加为好友
wangyu
当前离线
UID
471
帖子
31
精华
0
积分
0
阅读权限
10
在线时间
6 小时
注册时间
2010-5-23
最后登录
2010-6-10
新手上路
4
#
wangyu
发表于 2010-6-7 10:39
|
只看该作者
谢谢老师的回答
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1558 小时
注册时间
2009-7-30
最后登录
2024-5-16
管理员
5
#
fwbook
发表于 2010-6-7 15:02
|
只看该作者
实际通常不会这样使用。因为这样不容易理解。
TOP
返回列表
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]