< />

C++逗号表达式和while(scanf(%d,&n),n) kisara

C++逗号表达式和while(scanf(“%d”,&n),n)

今天做ACM的题的时候看到这种用法的时候惊到了。

while(scanf(“%d”,&n),n)可以拆成3部分来看

1.scanf(“%d”,&n) 不要小看这个东西,scanf输入时会返回一个数即正确赋值的个数 比如这个例子就是1,scanf(“%d%d”,&n,&m)输入成功2个数就会返回2;

2.scanf(“%d”,&n),n 这是一个都好表达式前面的scanf(“%d”,&n)就看成一个数字,由于逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值,比如(5+5,1+2)这个式子的值为3,a=(a=35,a4)的a值是60,a=5,6的a值是6

3.while()只要括号里面不是0都会执行

kisarawechat kisaraalipay