#include <stdio.h>
main()
{
int a,b,c,d,m,n;
a=5,b=7,c=3,d=8,m=2,n=2;
(m=a>b)&&(n=c>d);
printf("a=%d,b=%d,c=%d,d=%d,m=%d,n=%d",a,b,c,d,m,n);
getch();
}
这个c程序中m怎么等于0,n怎么等于2啊
关键是这句:(m=a>b)&&(n=c>d);这本身是个逻辑表达式,所以先计算左边括号中的表达式的值,即m = a > b。因为逻辑运算符>的优先级高于赋值运算符=,所以先求a > b的值。而a = 5, b = 7,所以a > b不成立,逻辑运算结果为0,再把0赋值给m。所以m的值会是零,而且整个表达式(m ...
c语言 为什么n等于2??那m等于几? 最后输出的是0 解释下
a&&b,只有当a为真时才执行b 因此m=0;n保持原值2 && 两边都真,结果才为真,故最后输出为0
c语言(m=a>b)&&(n=c>d),a=5,b=6,c=7,d=8,m=2,n=2,运算后m= ,n=...
a>b = 0, 后面是与运算,到此程序应该结束,表达式为0。最后结果:m=0, n=2
if(b==0)m=1;n=2;在C语言中怎么错?
if(b==0){ m=1;n=2;} 就是当b等于0时 执行对m赋值1和对n赋值2的语句 if(b==0){ m=1;} n=2;就是当b等于0时 执行对m赋值1的操作,b不等于0时不执行对m的赋值操作,而是直接执行下一个对n赋值的操作
m=2, n=2时,怎么实现?
a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d),后n的值等于2。先判断优先级,从左向右运算 m=a>b >的优先级比=高 算a>b a=5,b=6 ab为假,得0 再赋值给m,m=0 又因为&&前面为0就不执行后面 所以不执行n=c>d 所以最后结果是 m=0,n=2。
if(b==0) m=1;n=2;这个为什么不能看成c语言的语句?什么样的才能算一...
这个两个语句。if(b==0) m=1; \/\/第一个 n=2; \/\/第二个 改成下面这样,就是一个语句了。if(b==0) {m=1;n=2;} \/\/加上了一对{}。
在C语言中,m!=0这个m!代表的是什么啊?
不是(m!) = 0 而是 m (!=) 0 != 就是”不等于” 判断 判断m是不是 不等于 0
C语言中m=3,n=2,m--=,n++=?
这个表达式中,变量 m 被减 1,变量 n 被加 1,并且在这两个变量前面有一个后置递增和递减运算符。根据 C 语言中运算符的优先级,递增和递减运算符的优先级是高于赋值运算符的,因此表达式的值是变量 m 的初始值 3 和变量 n 的初始值 2,也就是表达式的值为 2。具体的过程是:表达式先求出 ...
C语言中,m=0 A=(++m)+(++m); 此时,A=?,m?
这个和编译器自身处理过程有关系,不同的编译器,结果不尽相同,不必过于纠结。比如 A = (++a) + (++a) + (++a);有些编译器会先计算右边,最后赋值给A:++a;++a;++a;A=a+a+a;有些编译器实际的过程变成:A=++a; A=A+(++a);A=A+(++a);有些编译器实际的过程变成:A=(++a)+(...
在C语言中,运行main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a+b...
逻辑或跟与||,&&有部完全运算的,比如在左边的表达式可以决定怎么个式子的值时,右边一个表达式讲不在执行。例如(表达式1)||(表达式2),当表达式1等于1时,就不在计算表达式二,会警告。(表达式)&&(表达式2)当表达式1等于0是,表达式二也不在执行,会警告 ...