#include#include#includeint main(){long int x1=123

发布时间:2021-02-26 01:15:06

#include#include#includeint main(){long int x1=123

网友回答

为什么错误的输出方式会影响到正确的输出方式是因为:
一般机器上,
int 2 字节
long 4 字节
float 4 字节
double 8 字节
char 1字节
在 %d,%lf>\n 这行,后一个X3在作为不定参数压入值时,自动转成double (类型提升)
机器读取了2 + 8 = 10个字节,而实际上两个X3加起来只有四个字节,
所以造成了错误,因为机器认为每个二进制位 都是 有意义的.
并且 整型 和 实数型 在底层 二进制位上的 排列标准,也是不一样的.
所以在输出时要注意控制变量的格式
只要把输出变量强制转换就可以了,代码如下,修改地方已表明
#include
#include
#include
int main(){
long int x1=123456789;
long int x2=12345;
int x3=123;
double y1=123.6;
int z=(int)y1;
printf(
%ld,%d>\n %ld,%d>\n %d,%lf>\n %lf,%d>\n %d,%lf>\n, x1,x1,
x2,x2,
x3,double(x3),//强制转换成double型
y1,int(y1),//强制转换成int型
z,double(z)); //强制转换成double型 system(pause); return 0;}
以上问题属网友观点,不代表本站立场,仅供参考!