若有i,j,k,分别为int,float,double,则i+j+k是什么型?
来源:百度知道 编辑:UC知道 时间:2024/06/15 15:08:51
double
如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示。
double ←—— float 高
↑
long
↑
unsigned
↑
int ←—— char,short 低
● 图中横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。 纵向箭头表示当运算符两边的运算数为不同类型时的转换,如一个long 型数据与一个int型数据一起运算,需要先将int型数据转换为long型, 然后两者再进行运算,结果为long型。所有这些转换都是由系统自动进行的, 使用时你只需从中了解结果的类型即可。这些转换可以说是自动的,但然,C语言也提供了以显式的形式强制转换类型的机制。
● 当较低类型的数据转换为较高类型时,一般只是形式上有所改变, 而不影响数据的实质内容, 而较高类型的数据转换为较低类型时则可能有些数据丢失。
byte,short,char之间的运算都先转换成int
其他的都转换成能表示的数最大的那一个进行
double
int i,j,k;
若 x,i,j,k 都是 int 型变量,则计算 x = (i=4,j=16,k=32) 后,x的值为:______。
i,j,k是int,i=j=k=-1,执行i++||++j&&++k后,ijk的值分别变成了0,-1,-1,请问k的值为什么是-1?
急!int i=1,,j=1,k=3,则表达式!&&(i+j)&k|i+j的值是多少?
"我的电脑"里无缘无故多了几个本地磁盘,分别为:H.I.J.K
求i,j,k.
C++中total::total(int i,int j){} 中的::是什么意思
int i,b,k=0;
C中int i; int *i; int *&i; int &*i; 都有什么区别呢?
A B C D E F G H I J K L 的音标分别是什么?