|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 自增自减中的一道难题求解
我的收件箱(0)
共有
526
人关注过本帖
标题:
自增自减中的一道难题求解
只看楼主
加入收藏
qq872551969
等 级:
禁止访问
威 望:
1
帖 子:241
专家分:1377
注 册:2012-7-13
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:10
自增自减中的一道难题求解
有一道题:
a=1,b=2,z
z=++a||++b
求a和b的值,我只知道a=2,可是b呢?
大侠写好解题思路哈~
编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-15 20:47
举报帖子
使用道具
赠送鲜花
qq872551969
等 级:
禁止访问
威 望:
1
帖 子:241
专家分:1377
注 册:2012-7-13
第
2
楼
收藏
得分:0
程序代码:
#include
<stdio.h>
main() {
int
a,b,c; a=
1
,b=
2
; c=++a||++b; printf(
"
a=%d\n b=%d\n
"
,a,b); }
代码附上
编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-15 20:52
举报帖子
使用道具
赠送鲜花
小强。小强
来 自:山西大同
等 级:
论坛游民
帖 子:42
专家分:56
注 册:2012-11-15
第
3
楼
收藏
得分:0
在逻辑二元表达式的第二个操作数中加入副作用会产生逻辑错误,你所说的z=++a||b++中的b++不会被计算机计算
2012-11-15 20:53
举报帖子
使用道具
赠送鲜花
jk_love
等 级:
蝙蝠侠
威 望:
1
帖 子:196
专家分:965
注 册:2012-10-22
第
4
楼
收藏
得分:0
优先级
运算符
结合律
( )
[ ]
->
.
从左至右
从
!
~
++
--
(类型) sizeof
+
-
*
&
从右至左
高
*
/
%
从左至右
到
+
-
从左至右
<<
>>
从左至右
低
<
<=
>
>=
从左至右
==
!=
从左至右
排
&
从左至右
^
从左至右
列
|
从左至右
&&
从左至右
||
从右至左
?:
从右至左
=
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
从左至右
2012-11-15 21:00
举报帖子
使用道具
赠送鲜花
qq872551969
等 级:
禁止访问
威 望:
1
帖 子:241
专家分:1377
注 册:2012-7-13
第
5
楼
收藏
得分:0
回复 2楼 qq872551969
你看懂题了么?我说的是++b 和b++的概念不同!
编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-15 21:06
举报帖子
使用道具
赠送鲜花
liufashuai
来 自:冥界-魔域-魂殿
等 级:
蜘蛛侠
威 望:
1
帖 子:370
专家分:1374
注 册:2012-6-22
第
6
楼
收藏
得分:5
b的值为2
因为逻辑||运算先计算第一个式子,发现为1然后直接赋值给c,所以就不计算++b了,
此处 ++b和b++性质是一样的,因为b++是先计算在让b自加,但是,在本语句和下一条语句中间,b的值一定会自加的,所以,只要不是一条语句,++b和b++性质一样
有一种落差是,你配不上自己的野心,也辜负了所受的苦难。
2012-11-15 21:18
举报帖子
使用道具
赠送鲜花
qq872551969
等 级:
禁止访问
威 望:
1
帖 子:241
专家分:1377
注 册:2012-7-13
第
7
楼
收藏
得分:0
回复 5楼 qq872551969
我记得 ++的优先级要比=高吧?怎么会先赋予呢?
编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-15 21:22
举报帖子
使用道具
赠送鲜花
zxd543
来 自:内蒙古
等 级:
贵宾
威 望:
17
帖 子:453
专家分:2351
注 册:2012-4-12
第
8
楼
收藏
得分:15
c=(++a||++b);//貌似前边为真 逻辑或 后边的不计算
c=(++a && ++b);//这样就会计算了
#include<stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c=0;
a=1,b=2;
c=++a||++b;
printf("a=%d\n b=%d c=%d\n",a,b,c);
c=++a && ++b;
printf("a=%d\n b=%d c=%d\n",a,b,c);
system("PAUSE");
return 0;
}
马马虎虎 不吝赐教 我是路过蹭分滴
2012-11-15 21:25
举报帖子
使用道具
赠送鲜花
qq872551969
等 级:
禁止访问
威 望:
1
帖 子:241
专家分:1377
注 册:2012-7-13
第
9
楼
收藏
得分:0
回复 8楼 zxd543
好的,懂了,谢谢
编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-15 21:28
举报帖子
使用道具
赠送鲜花
易小川x
等 级:
新手上路
帖 子:7
专家分:0
注 册:2012-11-13
第
10
楼
收藏
得分:0
回复 楼主 qq872551969
a=2,b=2.啊,
因为自增自减 为单目运算,级别要优先或||的级别,所以输出的a=2,b=2, c就等于1啊,
2012-11-15 21:31
举报帖子
使用道具
赠送鲜花
11
1/2页
1
2
快速回复:
自增自减中的一道难题求解
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018358 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved