龙宽九段 發表於 2025-11-9 21:29:00

C语言中的算术类型转换

<h1 id="1寻常算数转换">1.寻常算数转换</h1>
<p>在C语言中,当不同类型的操作数参与到算术运算时,编译器会将操作数转换成同一类型,再运算。这一过程被称为寻常算术转换,由于这个过程我们程序员看不见,所以它也是一种隐式类型转换(<s>见整型提升</s>)</p>
<h3 id="11寻常算数转换的过程">1.1寻常算数转换的过程</h3>
<h6 id="111整型提升">1.1.1整型提升</h6>
<p>若操作数是小整数类型(字节大小小于int),会自动进行整型提升,提升为int或unsigned int(<s>见整型提升</s>)</p>
<h6 id="112类型提升">1.1.2类型提升</h6>
<p><s>和整型提升很像</s><br>
若进行完第一步,操作数的类型仍然不同,按转换等级从低到高,将低等级的类型统一转换为操作数中存在的最高等级类型<br>
转换等级如下(由低到高)</p>
<pre><code>int
unsigned int
long
unsigned long
long long
unsigned long long
float
double
long double
</code></pre>
<h1 id="2赋值转换">2.赋值转换</h1>
<p>赋值运算符的右侧的表达式类型,会自动转为左侧的变量的类型,再赋值,这也是一种隐式转换</p>
<h1 id="3函数传参返回">3.函数传参/返回</h1>
<p>这也是隐式类型转换</p>
<h6 id="31传参">3.1传参</h6>
<p>若实参类型与形参类型不匹配,实参会自动转为形参类型</p>
<h6 id="32返回">3.2返回</h6>
<p>函数返回值类型会自动转为声明的函数返回类型</p>
<h1 id="4强制类型转换">4.强制类型转换</h1>
<p>通过强制类型转换操作符主动指定转换类型(<s>见操作符</s>),这是显式类型转换</p><br><br>
来源:https://www.cnblogs.com/827-s/p/19205336
頁: [1]
查看完整版本: C语言中的算术类型转换