社区
C++ 语言
帖子详情
一个条件表达式的值
xz0404
2011-02-08 02:02:23
if( 0 - sizeof(int) > 0){};
求GCC 的结果.
...全文
258
17
打赏
收藏
一个条件表达式的值
if( 0 - sizeof(int) > 0){}; 求GCC 的结果.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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的
值
作为整个
条件
表达式
的
值
。若
表达式
1的
值
为假,则求解
表达式
3,
表达式
3的
值
为整个
条件
表达式
的
值
。max = (a>b) ? a : ba比b大时,关系
表达式
为真,
条件
表达式
的
值
为a;b比a大时,关系
表达式
为假,
条件
python
条件
表达式
的
值
只有两种、它们是_如何最简单、通俗地理解Python的
条件
表达式
?...
目录:一、笔记二、我的自学路线三、笔记目录一、笔记①
条件
表达式
,有时也称三目运算符、三元运算符,形式为:返回
值
1 if
条件
else 返回
值
2。②
条件
表达式
,if
条件
成立时,
条件
表达式
返回 返回
值
1,否则返回 返回
值
2。③
条件
表达式
若与 for 遍历结合,if、else 都要放在 for 前面放前面,放后面会报错。④ 只有 if、没有 else 时,不是
条件
表达式
,若 if 与 for...
条件
运算符和
条件
表达式
注:(1)
条件
运算符优先于赋
值
运算符,因此赋
值
表达式
的求解过程是先求解
条件
表达式
,再将它的
值
赋给max(
条件
运算符优先级倒数第三,仅高于赋
值
运算符和逗号运算符);和:)组成,必须一起使用,要求有三个操作对象,称为三目(元)运算符,它是C语言中唯一的
一个
三目运算符,属于右结合(从右往左)。两个逗号将
表达式
分为三个子
表达式
,整个
表达式
计算结果等于最后
一个
子
表达式
的结果。
表达式
1
值
为假(0),接
表达式
3(1真2,1假3)(2)
表达式
2和3不仅可以是数
值
表达式
,还可以是赋
值
表达式
或函数
表达式
。
Python中的
条件
表达式
因此,在实际编程中,开发者需要根据具体的情况灵活选择使用
条件
表达式
还是传统的 if-else 语句,以确保代码的可读性和可维护性。
条件
表达式
通常用于简单的
条件
判断,例如在赋
值
语句中根据
条件
赋予不同的
值
,或者在函数内部返回不同的结果。本文将深入探讨 Python 中的
条件
表达式
,包括其基本语法、用法、示例以及与传统 if-else 语句的对比,希望能让读者对
条件
表达式
有更加全面的了解。在这个例子中,我们使用
条件
表达式
来返回
一个
数的绝对
值
,避免了使用传统的 if-else 语句。
【C语言从零到入门】第十节
条件
表达式
与分支结构
一、
条件
表达式
条件
表达式
用来表示
一个
条件
是否成立,它只有两个
值
,即真(true)和假(false)。 例如“a > 0”就是
一个
条件
表达式
,如果a>0,则
条件
成立,即该
表达式
的
值
为真;如果a <= 0,则
条件
不成立,即该
表达式
的
值
为假。 在C语言中,用数字0表示假,用
一个
非0整数表示真(通常用1表示)。
条件
表达式
由变量与
条件
运算符组成: 1. C语言中的
条件
运算符 符号 说明 > 大于 < 小于 == 等于 != 不等于 >=
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章