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

一、!(--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 的相反数是否为零。

你可能感兴趣的:(C语言,c语言,开发语言)