我一直在思考关于强制的多项选择题。4 个示例 a、b、c 或 d 之一是强制示例。我将其缩小到 A 或 B。但我在两者之间进行选择时遇到了问题。甘蔗有人请解释为什么一个是强制而一个不是。
一个)
string s="tomat";
char c='o';
s=s+c;
我认为 A 可能是正确的,因为我们添加了两种不同的类型,字符和字符串。这意味着 c 被提升为字符串,因此是强制的。
二)
double x=1.0;
double y=2.0;
int i=(int)(x+y);
我还认为 B 是正确的答案,因为双 (x+y) 正在变成一个 int 以放置在 i 中。但我认为这可能是错误的,因为它是通过使用 (int) 主动完成的,而不是被动的,例如“int i = x + y”
我将列出其他两个选项,即使我相信这两个选项都不是正确答案
C)
char A=0x20;
A = A << 1 | 0x01;
cout << A << endl;
D)
double x=1.0;
double y=x+1;
return 0;
我不只是在寻找答案,而是在寻找解释。我已经阅读了大量关于强制的内容,A 和 B 看起来都是正确的答案。那么为什么一个正确而另一个不正确。