C语言中, if语句当中,直接用变量作判断条件,什么意思?

WinLogo811 2009-01-17 10:28:20
C语言中, if语句当中,直接用变量作判断条件,什么意思?

if(!iflg)
{
......

}

其中的判断条件“!iflg”,什么意思?“!”代表什么意思?
...全文
3834 37 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
kay_bryant 2009-01-22
  • 打赏
  • 举报
回复
非零则真!
bxl1989 2009-01-22
  • 打赏
  • 举报
回复
啊,布尔值与数值.0表示假.非0表示真
anonymous_de 2009-01-22
  • 打赏
  • 举报
回复
看来还是简单些的问题
大家都愿意抢着回答哈~~~
大家过年好!!
思远作细 2009-01-22
  • 打赏
  • 举报
回复
在C中,这是一种不规范的代码编写方式。因为C中没有布尔变量。
起点 2009-01-22
  • 打赏
  • 举报
回复
'!'是逻辑非运算符,是个一元运算符。使ture变成false,false变成ture。
例如:有两个变量a,b。其值分别为5和2,则表达!(a>b)就是false.
16楼确实强大呵呵!
tanmeining 2009-01-22
  • 打赏
  • 举报
回复
为什么不看书?
qqxiaoyatou 2009-01-22
  • 打赏
  • 举报
回复
if后面是判断 真就继续 假就结束 16楼很强大~!!!嗯
codesnail 2009-01-21
  • 打赏
  • 举报
回复
为什么不自己看书,看到这种问题很郁闷。。。。
xhlancw1314 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 frankli2009 的回复:]
!是叹号,表示: 咦,这里怎么有个变量?
[/Quote]
我虽是新手
但是 这个.......
太BT了.....
yujian596 2009-01-20
  • 打赏
  • 举报
回复
!0即是1,!(!0)即是0。判断真假的。
willen121 2009-01-20
  • 打赏
  • 举报
回复
当布而型处理,转换后非0和0两中情况
na2650945 2009-01-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mosaic 的回复:]
!是取反的操作符

if(!iflg)
就是如果iflg是0,那么!iflag就是非0,就执行{}中的代码。

如果iflg是非0,那么!iflag就是0,就不会执行if下的{}中的代码。
[/Quote]
正解。
jiarusun000 2009-01-19
  • 打赏
  • 举报
回复 1
if(!name)
name是一个变量,然后对这个变量记性逻辑取反操作,也就是真边假,假变真。C语言中非0值是真,而0值就是假。
然后得到的就是if条件。
这里有一点要清楚的就是C语言无法根据0或者非0来直接判断,它首先根据0或者非0来转变为true or false,然后在判断。也就是如果变量是0,结果就是false,如果是非0,就是true。
int name=1;
if(!name) //name == false
{
//不执行
}else
{
//执行
}
lbh2001 2009-01-19
  • 打赏
  • 举报
回复
这种写法是C语言里的惯用法
这都是C语言里没有内置布尔类型惹得祸,习惯就行了
WinLogo811 2009-01-18
  • 打赏
  • 举报
回复 1
[Quote=引用 2 楼 mosaic 的回复:]
!是取反的操作符

if(!iflg)
就是如果iflg是0,那么!iflag就是非0,就执行{}中的代码。

如果iflg是非0,那么!iflag就是0,就不会执行if下的{}中的代码。
[/Quote]
if(0)
{
}
为什么不会执行if下的()中的代码?


if(iflg == 0)
{
}
会执行if下的{}中的代码?
sanguomi 2009-01-18
  • 打赏
  • 举报
回复
if(!iflg)
iflg 为0 时执行{}里边的代码,非0时不执行
linsenlinwei 2009-01-18
  • 打赏
  • 举报
回复
这个我知道的
shyli 2009-01-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 barbara2008 的回复:]
一般的来说,对布尔型的操作用这样的方式
其他类型的不宜做此种方式处理
[/Quote]
只要是可以转换为bool类型的变量都可以这样用啊。
china_west 2009-01-18
  • 打赏
  • 举报
回复
肯定那个变量的值也是0与非0
nassa1985 2009-01-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 breakhigh 的回复:]
引用 6 楼 WinLogo811 的回复:
引用 2 楼 mosaic 的回复:
!是取反的操作符


if(0)
{
}
为什么不会执行if下的()中的代码?


if(iflg == 0)
{
}
会执行if下的{}中的代码?



if是假设的意思, ()里面是假设的内容. 当()里面的内容为 0 ,即内容 为 逻辑非 中的 "假"时,则不执行if 下的{}代码.而flg == 0 ,前面还有 !,整个()中为"真",所以要执行{}内的代码 ---
[/Quote]

看清楚。。人家问的是另外一个语句。。根本么有“!”。
这里的iflg == 0 可以看成是一条语句。。。如果这个iflg是为0的,也就是说iflg == 0 这条语句是成立的。相当于。括号里面的内容是真的。。那么当然就会执行{}里面的语句。
加载更多回复(17)

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧