关于逻辑运算符和判断语句的疑惑

我不是很理解逻辑运算符放在判断语句框中判断语句的标准。
就比如
bool sorted=false;
while(!sorted){
statement
}
问题:括号中的(!sorted)为真时的条件是什么,为什么?
我的理解:!sorted的意思是非sroted籍非false,只要sorted不是false,“(!false)”就成立,但是事实好像是相反的。(!sorted)成立的条件是 sorted=false。
所以问一下各位,逻辑运算符与判断语句怎么理解。。

!sorted的含义为对sorted取反,相当于 if not sorted,即只有取反内容不成立时才为真

判断语句是判断条件是否为真,只要条件中最终的值不是0都是真的
真:
while(true)
while(1)
while(10)
while(-1)
上面的判断都是真
只有: while(0)或者while(NULL)是假,及在C语言中只有0才判断为假.

你代码中: sorted = false其实就是等于0,那么先计算!0,那么就是1,即非假即真,只有两种. 所以 !sorted的结果是真.

在C语言中各种符号都有固定的优先级,这个你可以去查看一下符号优先级表就知道了.在这里是先计算!sorted,在判断计算的结果