#include <stdio.h> main() { int a=11,b=3,c=0; printf("%d\n",c=(a/b,a%b)); }

#include <stdio.h>
main()
{ int a=11,b=3,c=0;
printf("%d\n",c=(a/b,a%b)); //c=(a/b,a%b)这个是什么意思呀?
求大神

}

首先想说这种c=(a,b)为都哈表达式,c取右边的值,但是这种不常用,一般只在for中使用,比如:
for (int i = 0, j = SIZE - 1; i < j; ++ i, -- j) {}
;printf("%d\n",c=(a/b,a%b));这一句是打印C的值,,,C的值为(a/b,a%b),其中a/b表示取a除以b的模也就是取整数部分,a%b表示取a除以b的余数。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-03
a/b, a%b称为逗号表达式,由于逗号表达式的优先级最低,需要用一对括号括起来:(a/b, a%b)。逗号表达式从左到右依次计算每一项,最终结果为最右边的那项。即,c=(a/b, a%b)将先计算a/b的结果,然后计算a%b的结果,最终返回a%b的结果作为整个表达式的结果,并且将其赋值给c。
第2个回答  2018-05-03
逗号表达式

#include <stdio.h> main() { int a=11,b=3,c=0; printf("%d\\n",c...
首先想说这种c=(a,b)为都哈表达式,c取右边的值,但是这种不常用,一般只在for中使用,比如:for (int i = 0, j = SIZE - 1; i < j; ++ i, -- j) {} ;printf("%d\\n",c=(a\/b,a%b));这一句是打印C的值,,,C的值为(a\/b,a%b),其中a\/b表示取a除以b的模也就是取...

#include <stdio. h> int main( ) { int a=4,b=3,c=1; printf("%d\\n...
结果是1&^1=0

#include<stdio.h>void main(){int a,b,c;a=1,b=2,c=3;printf("%d\\n...
答案是0 a=b==c这个表达式是从右向左运算的,也就相当于a=(b==c)而b==c这个判断表达式显然是不成立的,所以有一个返回值为0。即,a=0;printf("%d\\n",a=b==c);就相当于 a=b==c;printf("%d\\n",a);明白了么?至于2楼说的优先级的问题,显然是错误的,你可以把a打印出来,结果也...

#include <stdio.h> main () { int a=1,b=2,c=3; if (a>c) b=a;a=...
b=a;\/\/ 不执行 a=c;\/\/ 执行 c=b; \/\/ 执行 也就是说只有 b=a 是 if 条件成立时执行的语句。由于 a>c 条件不成立,所以不执行 b=a;

#include<stdio.h> main() { int a=4,b=3,c=2,d=1; printf("%d\\n",a...
如果a小于b,输出a,否则,比较c和d,如果d小于c,输出d,否则,输出b

#include<stdio.h> void main() {int a=1,b=2,c=3; if(c=a) printf...
注意看这句 if(c=a)括号里面只有一个等号,所以是一个赋值表达式,也就是把a的值赋给c,表达式的结果就是所赋的值1,表达式的值非零为真,继续执行,输出c的值,由于c已经被赋为1了,所以输出结果为1。注意 c=a 和 c==a 是不一样的,前者是赋值,后者才是比较相等。

...#include<stdio.h> Main() { int a=1,b=2,c=3,d=0; if(a= =1 &&...
源程序:include <stdio.h> main(){ int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2 || c--!=3)printf("%d,%d,%d\\n",a,b,c);else printf("%d,%d,%d\\n",a,b,c);else printf("%d,%d,%d\\n",a,b,c);} 输出: 1,3,3 【分析】if(a==1&&b++==2) *\/...

...main() { int a=-1,b=6,c; c=(++a<0)&&(--b>=0); printf("%d,%d,%d...
c=(++a<0)&&(--b>=0);以上在C语言里叫逻辑短路了,当++a<0的结果为0时,后面的表达式将不在执行,因此b还是原来的值6了

#include<stdio.h> void main() { int a=2,b=1,c=2; if(a<b) if(b<...
的值为假,则整个表达式的值就为假,它是从左向右计算的。所以执行该表达式后,b 的值还是它的初始值,即不进行运算。若a || b ,如果a 的值为真,整个表达式的值就为真,执行顺序同上。b 的真假由最初的真假来判断,也就是说,当a 为真时,b 则不进行运算了。回答很辛苦,希望采纳。

#include<stdio.h> void main() { int a=1,b=2,c=3,d=4; printf("%d\\...
这里的(a+b,b+c,c+d)是一运算表达式,有"+"运算和","运算,printf("%d\\n",(a+b,b+c,c+d))就是将这个运算表达式的结果打印到屏幕上。

相似回答