Коли я оголошую змінну у цілочисельному типі та змінну у подвійному типі, і я отримую їх добуток, що ви очікуєте, буде вихід у кожному типі та чому? приклад:
int main(){
int number_1 ;
double number_2 ;
cout << number_1 * number_2 ;
cout << endl ;
return 0 ;
}
Відповіді:
0 для відповіді № 1Якщо ви сумніваєтесь, спробуйте. Загалом, вища точність матиме пріоритет. Тож якщо у вас є int
і a double
, the double
є більш високою точністю, тому результат матиме таку форму.
int number_1 = 3;
double number_2 = 1.5;
std::cout << number_1 * number_2;
Output:
4.5
1 для відповіді № 2
Тип результату double
. Правила трохи делікатні, але:
- якщо є будь -який із типів
long double
, інший аргумент перетворюється наlong double
і тип результату такийlong double
- в іншому випадку, якщо будь -який із типів є
double
, інший аргумент перетворюється наdouble
і тип результату такийdouble
- в іншому випадку, якщо будь -який із типів є
float
, інший аргумент перетворюється наfloat
і тип результату такийfloat
Якщо немає типу плаваючої крапки, випотрапити до "цілочисельних акцій", які залежать від досить інтимних деталей розміру та підписаності аргументів. Крім того, якщо тип будь -якого аргументу є перерахуванням за обсягом, інший аргумент повинен мати той самий тип. Тут все надто складно, щоб вирішувати це питання.
0 для відповіді № 3
Це буде подвійне значення, оскільки C ++ просто перевантажує оператора, щоб помістити продукт у більший (той, у якому більше бітів) тип даних.
0 для відповіді № 4
Він буде подвійним Тому що в с ++, коли є кілька типів даних, він завжди друкує відповідь у найточнішому типі даних.