为什么C++(也可能是C)允许我为char分配和int而不至少给我一个警告?
是否可以直接分配值,例如
int i = 12;
char c = i;
Run Code Online (Sandbox Code Playgroud)
即做一个隐式转换,或者我应该使用static_cast<>?
编辑
顺便说一下,我正在使用gcc.
我的朋友说他在某些页面上看到它们是不同的,但两者怎么可能不同呢?
情况1
int i=999;
char c=i;
Run Code Online (Sandbox Code Playgroud)
案例2
char c=999;
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,我们正在初始化整数i来999,然后初始化 c用i,这实际上是999.在第二种情况下,我们初始化c直接与999.The截断和一旁的信息丢失,如何在地球上是这两种情况有什么不同?
编辑
这是我正在谈论的链接
一位评论的成员说 - 这不是一回事.第一个是赋值,第二个是初始化
那么这不仅仅是编译器的优化问题吗?