想将long型a的变量赋值给int型r,此时r暂时为long型,再将r赋值给int型,再看此时的r是用的long型计算还是用的原本的int型进行与b的运算。但是,r、b的赋值操作出现错误,有大佬来帮忙看看的吗
代码:
int main()
{
long a=31141529;
printf("a=%ld\n",a);
int r=0,b=0;
a=(long)r;
printf("r=%ld",r);
r=(long)b;
printf("b=%ld",b);
}
输出结果:
a=31141529
b=0
c=0
你这代码没写错吧?
a=31141529 打印没毛病啊
b初始化为0,然后你 r = (long)b,printf打印b自然还是0
c都不知道从哪里来的,你咋输出的呢?
你不会赋值语句写反了吧?
r赋值给a,应该写成 a = (long)r;啊,后面也是 b = (long)r啊
int 强转 long 可以
long 强转 int 会丢精度。