c++/c 中强制类型转换的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:52:50
请问c++/c 中强制类型转换 如
char a;
intb=int(a);

这里是编译器把 把a 看着一个int值 然后赋值给b
还是 把a 中的值强制换为一个int值 存放在一个临时空间里
然后通过临时空间把值赋给b

可能问题有点怪 但这里确实有一个小细节:会不会产生临时空间

你的问题涉及两个概念。第一,变量的类型转换是通过CPU来进行的,因此并不产生临时空间。第二,若表达式很复杂,CPU的寄存器不够用,那就需要借助于临时空间存放中间结果,通常是放在堆栈中。具体的做法因编译程序而异。

第二个,把a 中的值强制换为一个int值 存放在一个临时空间里
然后通过临时空间把值赋给b

a本身没有改变

上楼回答得很有道理,不过,这里,变量b已经有一个内存空间了,为什么还要利用多一个临时空间,不是多此一举了吗?