[问题] !用法问题

楼主: tarobear (塔落熊)   2015-04-27 16:15:44
开发平台(Platform):C
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
新手学到阵列时遇到一段程式如下
是在说将阵列中数字按大小排列, 并设flag减少执行次数.
int flag i,j,temp;
int flag=0;
for(i=1;(i<4)&&(!flag);i++)
{
flag=1;
for(j=0;j<4);j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=0;
}
}
我想问其中for的判断要怎么解释?
不太懂(!flag)是什么意思?
作者: fireslayer (fireslayer)   2015-04-27 16:21:00
!就是逻辑NOT
楼主: tarobear (塔落熊)   2015-04-27 16:27:00
我知道是not 但这个判断是什么意思?是指flag有变动就成立吗?好像也不是这样QQ 有人能帮忙解释吗
作者: samuelcdf (温泉龟)   2015-04-27 16:43:00
变量的内容只要不是0就是true, 否则为false!是把上述的结果再颠倒过来我不太爱这种写法, 可是别人会写所以还是该了解一下
楼主: tarobear (塔落熊)   2015-04-27 16:49:00
所以是 !flag 意思等同 flag==0 吗?
作者: CaptainH (Cannon)   2015-04-27 16:54:00
楼主: tarobear (塔落熊)   2015-04-27 16:57:00
了解! 感谢各位!!
作者: uranusjr (←這人是超級笨蛋)   2015-04-28 00:17:00
这作者是和 break 有什么恩怨吗...
作者: v7q4 ((.)(.)乳剑双修 -|=>)   2015-04-28 14:38:00
把int拿来做boolean处理...这种写法迟早会出事
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-04-28 16:10:00
不要boolean当int计算就好。

Links booklink

Contact Us: admin [ a t ] ucptt.com