移动端网站的优点,史志网站建设必要性,wordpress code,专业的郑州网站推广分享一个很有意思的小tip 有人在编写代码时运行出了一个让人摸不着头脑的结果: -200U 怎么会是真值呢#xff1f;#xff1f; 这位朋友还特意检验了一下0U的值#xff0c;当然是0没错。可是出现这样的结果到底是为什么呢#xff1f;
这就涉及到c语言中的算术类型转换…分享一个很有意思的小tip 有人在编写代码时运行出了一个让人摸不着头脑的结果: -200U 怎么会是真值呢 这位朋友还特意检验了一下0U的值当然是0没错。可是出现这样的结果到底是为什么呢
这就涉及到c语言中的算术类型转换的问题了 根据操作数的不同某些运算符会引起操作数的值从某种类型转换成另一种类型。其效果是将所有操作数转换为同一公共类型并以此类型为结果。 首先如果任一操作数为long double类型则另一操作数将转换为long double类型. 否则如果任一操作数为double类型则另一操作数将转换为double类型. 否则如果任一操作数为float类型则另一操作数将转换为float类型. 否则同时对这两个操作数进行整型提升. 如果任一操作数为long int类型另一操作数为unsigned int类型,此时取决于long int能不能表示完所有unsigned int类型的数。 如果可以则转换为long int; 如果不可以则将两个操作数都转换为unsigned long int类型 否则如果任一操作数为long int类型则另一操作数将转换为long int类型. 否则如果任一操作数为unsigned int类型则另一操作数将转换为unsigned int类型.(这也是对上面问题的解答) 否则两个操作数都转换为int类型.