在c语言的赋值类型转换中,有两种转换形式,分为隐形转换和显性转换。
什么是隐性转换,举个简略的demo(当然了,理论遇到的必定比这简单太多)
int a = 3;
int b = 0;a = b;printf("%d", a);
在这里,a的值应该为几,没错,曾经不再是之前的数字,而是变成了b赋予的值,也就是说,咱们这两行代码曾经将a赋予的3变成了b赋予的0,咱们将这种零碎“偷偷摸摸”批改的称之为隐性转换。
这种隐性转换,能够对b的值作出批改,看起来是不是很不便,然而,咱们上面再举一个例子,咱们假如a的值为100000,b的值为1,
int a = 1000000; short int b = 0; b = a; printf("%d", b);
这种状况下,我这边运行的后果如下:
所以不难看出数据呈现了失落,这是因为,a,b的值过大。因而成为了某些程序员代码中bug的一部分。
说完隐性转换,再说说显性转换,举一个简略的例子:
int a = 100; double b = 0; b = a; printf("%d", (int)b);
这里实际上就是显性转换,显性转换,顾名思义,就是我明晓得会这样,成心这么去设定操作,这里有几个容易失误的中央,那就是输入时肯定须要用%d和(int),对它进行强制。否则输入后果就是浮点型。
好啦,这篇博客就写到这里,如果有其余疑难,欢送评论区评论。