社区
C++ 语言
帖子详情
一个条件表达式的值
xz0404
2011-02-08 02:02:23
if( 0 - sizeof(int) > 0){};
求GCC 的结果.
...全文
229
17
打赏
收藏
一个条件表达式的值
if( 0 - sizeof(int) > 0){}; 求GCC 的结果.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
harleypang
2011-02-16
打赏
举报
回复
[Quote=引用 9 楼 infidel 的回复:]
引用 2 楼 loaden 的回复:
sizeof返回一个unsigned int,所以0 - sizeof(int)相当于4294967292。
结果为true。
如果强制转换一下,就是false了。
0 - (int)sizeof(int) > 0
长见识了...
[/Quote]
=============
确实长见识了!!
jaylong35
2011-02-09
打赏
举报
回复
[Quote=引用 2 楼 loaden 的回复:]
sizeof返回一个unsigned int,所以0 - sizeof(int)相当于4294967292。
结果为true。
如果强制转换一下,就是false了。
0 - (int)sizeof(int) > 0
[/Quote]
学习了
qq120848369
2011-02-09
打赏
举报
回复
有符号数与无符号数运算,向无符号数转化.
0-4=0+(-4)=0x00 00 00 00 + 0xff ff ff f4=0xff ff ff fc = 无符号十进制:4294967292。
运算过程与有符号数没区别,只是最终当做无符号数转化成十进制,效果就出来了.
Roy T
2011-02-09
打赏
举报
回复
C++真是太伟大/可怕了。。。
Al_Ways
2011-02-08
打赏
举报
回复
sizeof(int)不是为4么??
Al_Ways
2011-02-08
打赏
举报
回复
不懂..sizeof不是用来求类型大小的么??请高手再解释详细一点..
本人初学.
zenny_chen
2011-02-08
打赏
举报
回复
[Quote=引用 2 楼 loaden 的回复:]
sizeof返回一个unsigned int,所以0 - sizeof(int)相当于4294967292。
结果为true。
如果强制转换一下,就是false了。
0 - (int)sizeof(int) > 0
[/Quote]
哈哈,老邓回答得不错啊。
这个东西确实很容易失误。话说俺前一个项目,在做动态存储管理时俺也碰到过,在一个表达式里混入一个无符号数,布尔值就出问题了,呵呵呵⋯⋯
俺出的问题比这个还要再隐蔽些——
int a = 1;
unsigned b = 2;
if(a - b > 0)
puts("hehe!");
mstlq
2011-02-08
打赏
举报
回复
[Quote=引用 6 楼 zenny_chen 的回复:]
引用 2 楼 loaden 的回复:
sizeof返回一个unsigned int,所以0 - sizeof(int)相当于4294967292。
结果为true。
如果强制转换一下,就是false了。
0 - (int)sizeof(int) > 0
哈哈,老邓回答得不错啊。
这个东西确实很容易失误。话说俺前一个项目,在做动态存储管理时俺也碰到过,在一个表达式里混入一个……
[/Quote]
这个,我也中过招,哈哈
幸亏assert多,没出大问题
pengzhixi
2011-02-08
打赏
举报
回复
因为sizeof的返回类型是unsigned int。所以转型一下
上善若水邻
2011-02-08
打赏
举报
回复
[Quote=引用 2 楼 loaden 的回复:]
sizeof返回一个unsigned int,所以0 - sizeof(int)相当于4294967292。
结果为true。
如果强制转换一下,就是false了。
0 - (int)sizeof(int) > 0
[/Quote]
学习了
上善若水邻
2011-02-08
打赏
举报
回复
[Quote=引用 1 楼 fallening 的回复:]
结果是 true
[/Quote]
为什么??
老邓
2011-02-08
打赏
举报
回复
sizeof返回一个unsigned int,所以0 - sizeof(int)相当于4294967292。
结果为true。
如果强制转换一下,就是false了。
0 -
(int)
sizeof(int) > 0
fallening
2011-02-08
打赏
举报
回复
结果是 true
futurepi
2011-02-08
打赏
举报
回复
同问sizeof(int)不是为4么?
InfidelX
2011-02-08
打赏
举报
回复
[Quote=引用 2 楼 loaden 的回复:]
sizeof返回一个unsigned int,所以0 - sizeof(int)相当于4294967292。
结果为true。
如果强制转换一下,就是false了。
0 - (int)sizeof(int) > 0
[/Quote]
长见识了...
带你学会使用正则
表
达式
本门课程主要讲解正则
表
达式
的引用场景和一些基础用法,让大家对正则
表
达式
有一个清晰地认识。 为什么需要掌握正则
表
达式
? 正则
表
达式
非常灵活、而且功能非常强大,它可以迅速地用极简单的方式达到字符串的复杂...
C++
条件
运算符和
条件
表
达式
条件
运算符是C++中唯一一个三元运算符,要求有三个操作对象,
条件
表
达式
的一般形式为:
表
达式
1?
表
达式
2:
表
达式
3
条件
运算符的执行顺序是,先求解
表
达式
1,若为真则求解
表
达式
2,此时
表
达式
2的
值
作为整个
条件
表
达式
...
python
条件
表
达式
的
值
只有两种、它们是_如何最简单、通俗地理解Python的
条件
表
达式
?...
目录:一、笔记二、我的自学路线三、笔记目录一、笔记①
条件
表
达式
,有时也称三目运算符、三元运算符,形式为:返回
值
1 if
条件
else 返回
值
2。②
条件
表
达式
,if
条件
成立时,
条件
表
达式
返回 返回
值
1,否则返回 ...
条件
表
达式
a?b:c是什么意思
b:c是什么意思这个是
条件
表
达式
,
表
示如果a为真,则
表
达式
值
为b,如果a为假,则
表
达式
值
为c
条件
表
达式
具体说明如下
条件
语句: if(a>b) max=a; else max=b; 可用
条件
表
达式
写为 max=(a>b)?a:b;执行该语句的语义是:...
C++
条件
表
达式
C++有一个常被用来代替if-else语句的运算符,这个运算符被称为
条件
运算符(?:),它是C++中唯一一个需要3个操作数的运算符。该运算符的通用格式如下: // An highlighted block condition ? expression1 : ...
C++ 语言
64,676
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章