我有一个非常基本的问题,但我不确定我是否理解这个概念.假设我们有:
int a = 1000000;
int b = 1000000;
long long c = a * b;
Run Code Online (Sandbox Code Playgroud)
当我运行此,c显示负值,所以我改变也a和b到long long,然后一切都很好.那么,为什么我必须改变a和b,当其值在范围int和他们的产品被分配到c(这是long long)?
我正在使用C/C++
#include <iostream>
using namespace std;
int main()
{
int a;
long b;
cout<<sizeof(a+b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出为 8(长变量的大小)。为什么它不返回它们的总和?