社区
C语言
帖子详情
bool变量与int转换问题
GKatHere
2010-02-04 11:39:12
有变量
int iA=0;
为什么用if(0==ia)判定的时候会当作假
而用if(!(bool)ia)才会当作真??
真是奇怪??
难道0==ia这个等式不成立么,成立就应该为真!
相反:int iA=1
那么if(1==ia)判定的时候会判定作什么
再如:if(2==ia)判定的时候会判定作什么??
...全文
1387
11
打赏
收藏
bool变量与int转换问题
有变量 int iA=0; 为什么用if(0==ia)判定的时候会当作假 而用if(!(bool)ia)才会当作真?? 真是奇怪?? 难道0==ia这个等式不成立么,成立就应该为真! 相反:int iA=1 那么if(1==ia)判定的时候会判定作什么 再如:if(2==ia)判定的时候会判定作什么??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shiweifu
2010-02-05
打赏
举报
回复
没看明白。。标准上写的非0就是真。。具体还是看实现的
taodm
2010-02-05
打赏
举报
回复
楼主到底在问C问题还是C++问题?
jackyjkchen
2010-02-05
打赏
举报
回复
除VC和gcc之外的编译器,不要信任
job82824
2010-02-05
打赏
举报
回复
我觉得应该报错才对,因为定义的是iA而不是ia
所以应该出现undefined variable ia之类的提示?
huanmie_09
2010-02-05
打赏
举报
回复
[Quote=引用楼主 gkathere 的回复:]
有变量
int iA=0;
为什么用if(0==ia)判定的时候会当作假
而用if(!(bool)ia)才会当作真??
真是奇怪??
难道0==ia这个等式不成立么,成立就应该为真!
相反:int iA=1
那么if(1==ia)判定的时候会判定作什么
再如:if(2==ia)判定的时候会判定作什么??
[/Quote]
ia跟iA是同一个变量吧?
我也想问一下楼主的编译器,if(0==ia)判定的时候会当作假?我很怀疑。
GKatHere
2010-02-05
打赏
举报
回复
汗,我也搞不明白。。。单个来说,就是那样,可是在大程序中间,就会出现上面的问题,晕呀
pengzhixi
2010-02-05
打赏
举报
回复
LZ具体的编译器是什么,具体的代码又是什么呢
camelisi
2010-02-05
打赏
举报
回复
dev c++测试,0 == ia为真。
问题还没上升到 是否用了不恰当的风格进行bool值比较
if(1==ia) 肯定为假了,因为ia = 0。
if(2 == ia)也一样为假
lovesi3344
2010-02-04
打赏
举报
回复
所以有本书上写到编程风格的时候
说到
如果是bool型 , 应使用如下风格较好
if(!num) 表示num是假的 flase
if(num) 表示num是真的 true
如果是int型 ,应使用如下风格较好
if(num == 0) 表示num == 0
if(num != 0) 表示Num与0不相等
如果是指针 ,使用如下风格较好
if(p)
if(p == NULL)
另外,《c++ 编程风格》书上写道:“不要与true测试相等性”
flyyyri
2010-02-04
打赏
举报
回复
mark
febbird1984
2010-02-04
打赏
举报
回复
iA和ia是2个变量
int iA=0;
那么if(0==iA)等价于if(true)
难道是因为编译器原因?
python学习 day3
python学习day3容器类型补全1. set 集合2. dict 字典定义字典获取字典的值修改字典的值3. 二级容器
变量
的缓存机制【1】Number型
int
整型float 浮点型
bool
布尔型complex 复数型【2】容器类型强制类型
转换
Number型的
转换
(
int
float
bool
complex )(
int
) 强制
转换
成整型(float) 强制
转换
成浮点型(complex) 强制
转换
成复数(
bool
) 强制
转换
成布尔型自动类型
转换
1.
bool
+
int
2.
bool
+ float3.
bool
+ complex4.
int
+ float5.
int
+ complex6.
C++
bool
变量
与
int
转换
问题
只有0才是false!
今天又碰到一个容易让人混淆的
问题
。就是在C++里,我们
int
类型直接赋值给
bool
的
变量
是0,-1,1,到底哪个是true哪个是false?其他数呢。 实践才是检验真理的唯一标准,下面我在devc++上运行如下代码: #include <iostream> #include<cstdio> using namespace std;
int
main() {
bool
x=-1; if(x==true) pr
int
f("true\n"); else
python的数据类型
转换
python的数据类型
转换
函数 1、
int
()
int
():将float、
bool
、str类型的数据
转换
为
int
类型,float类型
转换
为
int
类型时去除小数点后面的数,
bool
类型
转换
为
int
类型时False变为0、True变为1,str类型直接
转换
为
int
类型。 在python中使用的格式: # 定义float类型
变量
f1 = 1.12 f2 = 1.99 # 定义
bool
类型
变量
b1 = True b2 = False # 定义str类型
变量
s1 = '5' # 使用
int
()把float、bo
bool
类型转
int
, 或者
bool
数组对象转
int
/float数组对象
bool
value(one element) to
int
int
(True)
bool
array to
int
array (np.array([True])).astype(np.
int
32) import numpy as np (np.array([True])).astype(np.float32)
c语言
bool
转
int
,C语言
Bool
型转
int
型,布尔型 转 整型
C99中支持
bool
,是以宏定义实现//// std
bool
.h//// Copyright (c) Microsoft Corporation. All rights reserved.//// The C Standard Library header.//#ifndef _STD
BOOL
#define _STD
BOOL
#define __
bool
_true_false_are_d...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章