1. 程式人生 > >對short型別,輸出結果不一樣?

對short型別,輸出結果不一樣?

#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
	short x,y;
	x=-32654;  
	y=-1234;
	short z=x+y;
	cout<<z<<endl;
//cout << (short)x+y<<endl;
return 0 ;
}

至今不明白為什麼,,有沒有哪位大佬講一下啊?

華麗的分割線

2018.9.12

    解答:現在一看,這麼解釋?之所以註釋掉的那個cout是正確的結果,是因為x強轉成short但是x+y是用int相加的。所以答案是int型的所以不會溢位。如果改成cout << (short)(x+y) << endl;   輸出的答案也是溢位的。

   但是問題來了,為什麼會用整型做運算呢?cout自帶?