C语言中,逻辑表达式是一个赋值语句时候是真还是假while(*t=*s){t++;s++}什么时候执行?不执行?

如题所述

while(*t=*s)中的条件判断是*t=*s,而该表达式是一个赋值表达式,而该表达式的返回值是赋值后左值的值,即赋值后*t的值作为该表达式的值,用它作为逻辑判断,规则是赋值后*t的值为非0时为真,赋值后*t的值为0时则为假。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-24

每个数据都对应一个地址

当地址t和地址s内的数相等时执行 

地址t和地址s加1继续比较直到不相等为止

比如

 

执行完后 t=102 s=88

第2个回答  2014-03-24
赋值表达式的返回就是等号左边的值,也就是说
while(*t=*s) 的意思是将 *s赋值给*t,然后判断*t是真还是假。

到*s =0或*s='\0'的时候,这个循环就不成立,否则while循环成立。本回答被提问者采纳
第3个回答  2014-03-24
表达式也是有值的,逻辑表达式的值是逻辑判定结果大家都懂的。。但是这里用赋值表达式来代替了逻辑表达式,一个赋值表达式的值实际上是赋值号右边的值,这里就是*s的值,C语言中,只有0和null会被判定为false,不为0的值在这种判定中都被判为true
相似回答