我的朋友说他在stackoverflow的某个页面上读到它们是不同的,但是这两者怎么可能不同呢?
情况1
int i=999;
char c=i;
案例2
char c=999;
在第一种情况下,我们将整数
i
初始化为999
,然后用实际上是999
的i
初始化c
。在第二种情况下,我们直接用999
初始化c
。撇开截断和信息丢失不谈,这两种情况到底有什么不同呢?
编辑
以下是我所说的链接
将int转换为char时为什么没有溢出警告
其中一位成员评论说:“这不是同一件事。第一个是赋值,第二个是初始化。”因此,这难道不仅仅是编译器优化的问题吗?