强制类型转换

Posted rivsidn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强制类型转换相关的知识,希望对你有一定的参考价值。

#include <stdio.h>

int main()
{

    printf("%lld
", 4);
    printf("%lld
", (long long int)4);

    return 0;
}

$ ./a.out
-4643154951747403772
4
$ ./a.out
-4641411195025227772
4
如上所示,每次执行的数值不一致。
需要理解,强制类型转换实际是进行了什么动作。

是因为此时没有进行强制类型转换,而且同样不会发生隐式类型转换。

#if 0

TODO : 添加汇编解析

#endif

#include <stdio.h>

long long int aa = 4; /*发生了隐式类型转换,隐式类型转换发生在数值赋值时,作用跟强制类型转换一致*/
long long int bb = (long long int)4;

int main()
{
    printf("%lld
", aa);    
    printf("%lld
", bb);

    return 0;
}

$ ./a.out
4
4

此时又为什么数值是固定的了?隐式类型转换。

 










以上是关于强制类型转换的主要内容,如果未能解决你的问题,请参考以下文章

数据类型转换之强制类型转换

服务器 数据库代码 类型转换问题 必须强制类型转换

强制类型转换

今天聊一聊Java引用类型的强制类型转换

关于强制类型转换(c语言)

Java数据类型转换(自动转换和强制转换)