设int a=1 则表达式(true|(++a))&(a==2)的值是什么,为什么?

如题所述

第1个回答  2015-12-07
false追答

括号优先级最高,所以表达式是x&y的形式,前面括号的结果就是x,结果是true,后面的false,最终结果是false

追问

答案是true!啊

追答

哦,不好意思,没注意,因为是++a,所以后面运算a==2时,a已经是2了,所以后面也是true,结果是true

懂了吗

本回答被提问者采纳
第2个回答  2015-12-07
true追问

求解释?

...则表达式(true|(++a))&(a==2)的值是什么,为什么?
括号优先级最高,所以表达式是x&y的形式,因为是++a先取值在计算所以a=2 true是1 1|2 是01|10 所以是11所以是3,所以后面运算a==2时,a已经是2了,所以后面也是true,3&1 所以结果是true 或者是1 这个可以证明

C语言题:求结果,要给出解释
++是一个运算符,运算符的左边需要一个左值,即可寻址的值。而(-a)是一个表达式,该表达式返回的是一个右值,++运算符不能作用在一个右值上。但并不是所有表达式都返回右值。赋值表达式返回的就是左值,如果这样写:(a=3)++; 这句程序是正确的,可以通过编译。因为(a=3)是赋值表达式,返回...

int a=1,b=2,c=3; 执行表达式(a=b+c)||(++b)后a,b,c的值分别是...
a = b + c 这句已经是真(TRUE)了,所以,++b 就不执行了,b 的值还是 2

c语言中switch后的括号内的表达式代表什么?
C语言中switch语句后的括号内表达式的值被用来进行匹配比较,以决定执行哪个case分支的代码。表达式的值会被转换为真或假的整型值,真值通常表示为1,假值则表示为0。举个例子:假设有一个表达式a==1,它的值被转换为0,因为1并不等于0,所以a的值被判断为假。同样,如果表达式a==0,它的值被转换...

c语言中两个加号++是什么意思,++a,a++分别是什么意思
++ 是递增运算符,对于变量的作用相当于a = a + 1;a++ 和 ++a 的区别在于,作为表达式,前者返回a的原数值,后者返回a递增后的数值。例如,int a = 1,则a++为1,++a为2。但不管++在什么位置,运行结束之后a的值均为2。

设int x=11,则表达式(x++*1\/3)的值是
我感觉你这题有问题。最后表达式的结果没有定义啊,我觉得要是int类型就是3。。

c语言问题 a=表达式1,表达式2 运算的过程 如果是 a=(表达式1,表达式2...
在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。所以,第一个的结果是表达式1,第二个的结果是表达式2

main() { int a=1,a=2; printf("a=%%d,b=%%d",a,b); } 结果是”a=%d...
int age = 21;printf( "Hello %s, you are %d years old\\n", name, age );显示下列输出:Hello Bob, you are 21 years old s 表示, "在这里插入首个参数,一个字符串." %d 表示第二个参数(一个整数)应该放置在那里. 不同的"%-codes"表示不同的变量类型, 也可以限制变量的长度.Code ...

...C++):int a=1;cout << a <<(int)(~a)<<(int)(~a|a) ;...即如何...
转换为int,就是即-2(在 默认int是有符号数的情况下)的机器码表示,所以第二个数是-2。第三个表达式,~a|a,由于~的优先级高于|,所以表达式等于0xfffffffe|0x00000001,即得到0xffffffff,也就是有符号数-1。小疏忽,谢谢“兰鲁”。并不是所有的编译器都把int当作有符号的整数。

int a=1; printf("%d, %d, %d\\n", a, ++a, a++);结果是
执行int a=1; printf("%d, %d, %d\\n", a, ++a, a++)的结果为3,3,1。这个语句的输出结果不是唯一的,因为对于求值的顺序是不一定的,所以说还有可能输出的结果为1,2,2。当求值的顺序为自右向左是,那么a++先引用1然后再加1,会输出1,然后++a是先加1再引用,会输出3这个结果,...

相似回答