a=2;
b=2;
c=1;
++a||--b&&--c;
printf("%d,%d,%d\n",a,b,c);
turbo c 2.0环境下结果为3,2,1
但是我想不通,逻辑与比逻辑或优先级要高
应该先执行--b啊
结果它先执行了++a
++a结果为3,即为真
根据逻辑或的特性,前面数为真,后面的都不去做了.
我的问题是为什么不是先执行--b?
我觉得,可不可以这样解释:
因为,++单目运算要高于&&和||
所以在程序执行时
他把++a先算出来,
然后压栈,碰到||,所以后面就不执行了
谢谢大家
但是,如果不考虑优先级的话,
那数学中 3+2*5 的结果从左往右运算不就是为25(我们都知道正确的是30)
C中又规定&& 高于|| ,那它这样规定又有什么意思呢?
c语言的题目,关于"逻辑与"和"逻辑或",谁能解释?
晕,优先级最高的是单目运算符,比如上面的++和--,而出现多个单目运算时,从有向右依次运算,在编译原理中,++,--和你说的逻辑运算没有任何关系 他们不会以逻辑运算的先后分组,都是独立的运算 不是和我说得一个意思么...
c语言的题目,关于"逻辑与"和"逻辑或",谁能解释?
和楼主想的一样,++确实高于逻辑运算!!!
C语言中逻辑与逻辑或以及其他怎么理解?
逻辑或 逻辑与都是单目运算符,也就是只有一个操作数。他们都是针对的二进制位来说的。。。举例:真为1,假为0,逻辑与 是 两真则真,其他情况为假 如3&5应该先写成二进制 00000011 (3)00000101 (5)从右到左按位进行与运算,,,两真则真。。。所以 与过之后 00000001就...
c语言逻辑与和逻辑或和逻辑非的运算
“逻辑与”和“逻辑或”的关系:当“p且q ”真,则“p或q”真;当“p或q”假,则“p且q ”假。
求人讲解一下c语言三种逻辑运算符的用法。。实在搞不懂
首先得清楚C的逻辑值是“真”和“假”两个,用1和0表示,1代表真,0代表假。C规定凡不为0的逻辑值就是1。!——逻辑非,单目运算符,凡不为0的变量被!一下就是0,而0被!一下就是1。比如有int x=-3,y=!x,z=!y;,那么最后y=0、z=1。&&——逻辑与,双目运算符,当前后两个变量的...
谁给解释c语言中的 逻辑或与逻辑与
&& 运算,即左边的值如果非0,右边的值也非0,则输出 1,否则输出 0;并且当左边值为 0时,不判断右边值是否非0;|| 运算,即左边值若为 0,右边值也为 0 ,则输出 0,否则输出 1;若左边值为 1 ,则不再判断右边值是否非 0 ...
请问在C语言中&&和||是什么意思来着
在C语言中,&&和||是逻辑操作符,用来进行逻辑与和逻辑或的运算。逻辑与(&&)操作符,只有当两边的表达式同时为真时,整个表达式的结果才是真。反之,只要有一边为假,则整个表达式的结果为假。具体表现为:0&&0=0,1&&0=0,0&&1=0,1&&1=1。逻辑或(||)操作符,则只要两边的任一表达式为...
在C语言中,逻辑与、逻辑或和逻辑非有什么区别?
在C语言中,逻辑与(&&)、逻辑或(||)和逻辑非(!)是三种基本的逻辑运算符。它们分别用于连接布尔表达式并判断它们的真假。逻辑与(&&):逻辑与连接两个布尔表达式,只有当两个表达式的值都是真时,整个表达式的值才是真。否则,整个表达式的值就是假。例如:逻辑或(||):逻辑或连接两个布尔...
C语言中的 与或非运算
1、逻辑与 在C语言中逻辑与用&&表示。举例:a&&b(其中a、b都代表一个条件)如果a和b都为真,则结果为真,如果a和b中有一个条件为假,则结果为假。2、逻辑或 在C语言中逻辑或用||表示。举例:a||b(其中a、b都代表一个条件)如果a和b有一个或以上为真,则结果为真,二者都为假时,...
C语言中的&&和||的区别是什么,详细点啊。附上程序要求。请着重解释&&...
&& 是逻辑与,两者为真结果为真,一真一假结果为假,两者为假结果更为假。|| 逻辑或, 两者之一为真结果为真, 两者为真结果为真,两者为假结果为假。题目没有说有几个作案人。那么可以随便假定,只要符合6个条件即可。假定:A,B,C,F = TRUE D,E = FALSE 条件1,A || B == TRUE; ...