加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

c语言怎么展开强制类型转换

发布时间:2023-07-04 11:19:31 所属栏目:语言 来源:
导读:这篇文章主要讲解了“c语言怎么进行强制类型转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言怎么进行强制类型转换”吧!

在c
这篇文章主要讲解了“c语言怎么进行强制类型转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言怎么进行强制类型转换”吧!
 
在c语言中,可以通过“(type_name) expression”语句来进行强制类型转换,参数“type_name”表示新类型名称,例如“(float)100”就是将int类型的数值100转换为float类型。强制类型转换是程序员明确提出的、需要通过特定格式的代码来指明的一种类型转换;在编程时,有需要类型转换的时候都用上强制类型转换运算符,是一种良好的编程习惯。
 
数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。
 
c语言有两种数据类型方式:
 
自动类型转换:就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。
 
强制类型转换
 
下面我们就详细了解一下c语言的强制类型转换。
 
强制类型转换
 
自动类型转换是编译器根据代码的上下文环境自行判断的结果,有时候并不是那么“智能”,不能满足所有的需求。如果需要,程序员也可以自己在代码中明确地提出要进行类型转换,这称为强制类型转换。
 
自动类型转换是编译器默默地、隐式地进行的一种类型转换,不需要在代码中体现出来;强制类型转换是程序员明确提出的、需要通过特定格式的代码来指明的一种类型转换。换句话说,自动类型转换不需要程序员干预,强制类型转换必须有程序员干预。
 
强制类型转换的格式为:
 
(type_name) expression
 
type_name为新类型名称
 
expression为表达式
 
例如:
 
(float) a;  //将变量 a 转换为 float 类型
 
(int)(x+y);  //把表达式 x+y 的结果转换为 int 整型
 
(float) 100;  //将数值 100(默认为int类型)转换为 float 类型
 
请看下面的实例,使用强制类型转换运算符把一个整数变量除以另一个整数变量,得到一个浮点数:
 
#include <stdio.h>
 

int main()
 
{
 
   int sum = 17, count = 5;
 
   double mean;

   mean = (double) sum / count;
 
   printf("Value of mean : %f\n", mean );

}
 
c语言怎么进行强制类型转换
 
这里要注意的是强制类型转换运算符的优先级大于除法,因此 sum 的值首先被转换为 double 型,然后除以 count,得到一个类型为 double 的值。
 
类型转换可以是隐式的,由编译器自动执行,也可以是显式的,通过使用强制类型转换运算符来指定。在编程时,有需要类型转换的时候都用上强制类型转换运算符,是一种良好的编程习惯。
 
类型转换只是临时性的
 
无论是自动类型转换还是强制类型转换,都只是为了本次运算而进行的临时性转换,转换的结果也会保存到临时的内存空间,不会改变数据本来的类型或者值。请看下面的例子:
 
#include <stdio.h>
 
int main(){
 
    double total = 400.8;  //总价
 
    int count = 5;  //数目
 
    double unit;  //单价
 
    int total_int = (int)total;
 
    unit = total / count;
 
    printf("total=%lf, total_int=%d, unit=%lf\n", total, total_int, unit);
 
    return 0;
 
}
 
c语言怎么进行强制类型转换
 
注意看第 6 行代码,total 变量被转换成了 int 类型才赋值给 total_int 变量,而这种转换并未影响 total 变量本身的类型和值。如果 total 的值变了,那么 total 的输出结果将变为 400.000000;如果 total 的类型变了,那么 unit 的输出结果将变为 80.000000。
 
扩展知识:常用的算术转换
 
常用的算术转换是隐式地把值强制转换为相同的类型。编译器首先执行整数提升,如果操作数类型不同,则它们会被转换为下列层次中出现的最高层次的类型:
 
c语言怎么进行强制类型转换
 
常用的算术转换不适用于赋值运算符、逻辑运算符 && 和 ||。让我们看看下面的实例来理解这个概念:
 
#include <stdio.h>

int main()
 
{
 
   int  i = 17;
 
   char c = 'c'; /* ascii 值是 99 */
 
   float sum;

   sum = i + c;
 
   printf("Value of sum : %f\n", sum );

}
 
当上面的代码被编译和执行时,它会产生下列结果:
 
Value of sum : 116.000000
 
在这里,c 首先被转换为整数,但是由于最后的值是 float 型的,所以会应用常用的算术转换,编译器会把 i 和 c 转换为浮点型,并把它们相加得到一个浮点数。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!