社区
C++ 语言
帖子详情
一个条件表达式的值
xz0404
2011-02-08 02:02:23
if( 0 - sizeof(int) > 0){};
求GCC 的结果.
...全文
315
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语言中
条件
表达式
的位置如何影响布尔判断,以及在实际编程中的示例应用,包括do-while语句、循环
条件
的判断逻辑和特定
表达式
的解析。,
c++
条件
表达式
本文通过
一个
简单的C++程序展示了
条件
表达式
的使用方法。当
条件
为真时返回
一个
值
,否则返回另
一个
值
。通过两层嵌套的
条件
表达式
演示了更复杂的逻辑判断。
C++
条件
表达式
本文介绍了C++中的
条件
运算符(?:),通过程序实例展示了如何用其替代if-else语句来确定较大
值
。
条件
运算符具有简洁性,可产生
一个
值
并嵌套在
表达式
中。文章还探讨了其特性以及如何解析嵌套
条件
表达式
,并提供了
一个
嵌套
条件
表达式
的示例程序及其输出解释。
Python之_
条件
表达式
本文介绍了Python编程中如何使用
条件
表达式
进行有
条件
赋
值
,通过
一个
示例展示了如何简洁地找出两个数中的较大
值
。
条件
表达式
允许在一行代码内完成判断和赋
值
操作,提高了代码的可读性和效率。
C++中的三元运算符(也称为
条件
运算符)是一种简洁的语法,用于基于
一个
布尔
条件
表达式
选择两个
值
中的
一个
。
本文介绍了C++中三元运算符的用法,包括基础用法示例以及如何根据用户年龄判断是否成年和根据分数确定等级。同时强调了过度使用三元运算符可能影响代码可读性的注意事项。
C++ 语言
65,210
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章