C语言——!(--x)和!(-x)以及while(!(--x)) 和 while(!(-x))

2024-01-08 23:41:44

一、!(--x) 和 !(-x)?

?1. !(--x)

????????这个表达式表示先对变量 x 执行自减操作(即 x 的值减去 1),然后对自减后得到的结果取逻辑非。

????????如果自减后的 x 等于 0,则逻辑非运算的结果为真(值为 1);否则结果为假(值为 0)。
?

2. !(-x)

????????这个表达式表示对 -x 取反,也就是先计算 -x,这里的 - 是一元负号运算符,它会将 x 的值取相反数。

????????然后对这个相反数的结果进行逻辑非判断。如果 -x 计算后等于 0,则逻辑非的结果为真(值为 1);如果不等于 0,则结果为假(值为 0)。

总结

????????在 !(-x) 中,主要关注的是变量 x 的相反数是否为零,而非自减操作。例如,若 x 为正数时,-x 将是一个负数,除非 x 刚好是 0,此时 -x 也为 0,因此 !(-x) 的结果将是假(对于任何非零的 x)和真(当 x 等于 0 时)。

二、while(!(–x)) 和 while(!(-x))?

?1. while(!(--x))

????????这是一个条件循环语句。首先执行 --x,对变量 x 进行自减操作,然后检查自减后 x 的值是否为 0。

????????如果 x 在自减后等于 0,则表达式 !(--x) 的结果为真(即逻辑非的运算结果为真),循环不执行;如果 x 在自减后不等于 0,则表达式的结果为假,循环执行一次。

????????每次循环结束后都会重新判断该条件,直到 x 被减到等于 0。

?2. while(!(-x))

? ? ? ??这也是一个条件循环语句。首先计算 -x,即 x 的相反数,然后判断这个相反数是否为 0。

????????如果 x 是一个正数,那么 -x 将是一个负数,除非 x 等于 0,此时 -x 也为 0。

????????因此,在 x 不是 0 的情况下,!(-x) 的结果将是假,循环会执行;当 x 等于 0 时,!(-x) 的结果为真,循环将停止。每次循环结束后同样会重新计算 -x 并检查是否为 0 来决定是否继续循环。

总结

????????这两个循环都会在满足特定条件时结束,但它们关注的条件不同:前者基于 x 自减后的结果是否为零,后者基于 x 的相反数是否为零。

文章来源:https://blog.csdn.net/W_Fe5/article/details/135385718
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。