c语言函数的强制转换 c语言强制转换语句

请问C语言如何实现数据类型的强制转化?强制类型转换
当操作数的类型不同,而且不属于基本数据类型时 , 经常需要强制类型转换,将操作数转化为所需要的类型 。强制类型转换具有两种形式 , 称为显式强制转换和隐式强制类型转换 。
1、显式强制类型转换
显式强制类型转换需要使用强制类型转换运算符 , 格式如下:
type(expression)

(type)expression
其中,type为类型描述符 , 如int , float等 。expression为表达式 。经强制类型转换运算符运算后,返回一个具有type类型的数值 , 这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
int nVar=0xab65;
char cChar=char (nVar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变 。
2、隐式强制类型转换
隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中 。在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量 。在函数调用时,如果return后面表达式的类型与函数返回值类型不同 , 则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回 , 如:
int nVar;
double dVar=3.88;
nVar=dVar;//执行本句后 , nVar的值为3,而dVar的值仍是3.88
1,若已知x,y为double类型,则表达式:x=1,y=x+3/2结果是多少?。?
因为x,y都是double型 , 所以执行了y=x+3/2这个语句后,会输出小树部分,double型默认的是小数点后几位我忘了,你自己调试下 , 就会明白了!
C语言中,函数指针的强制类型转换有什么作用?函数指针强转尽量不要有,仅用于类型实际是相同的,但定义的变量类型不同,如
另一个程序员写了段代码,要求你提供一个函数指针,类型如下:
typedef int (*ftype)(int,int);
但你写的函数是 unsigned intfun(unsigned int,unsigned int) , 参数一个有符号,一个无符号,在你知道符号不影响结果的情况下,可以强制转换 。
C语言强制类型转换强制类型转换是把变量从一种类型转换为另一种数据类型 。
例如,如果您想存储一个 long 类型的值到一个简单的整型中 , 您需要把 long 类型强制转换为 int 类型 。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型 。
扩展资料:
举例说明
使用强制类型转换运算符把一个整数变量除以另一个整数变量,得到一个浮点数:
#include stdio.hint main()
{
int sum = 17, count = 5;
double mean;
mean = (double) sum / count;
printf("Value of mean : %f\n", mean );
}
当上面的代码被编译和执行时,它会产生下列结果:
Value of mean : 3.400000
参考资料来源:百度百科-C语言
C语言 强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型 。例如c语言函数的强制转换:
(double)a(将a转换成double类型)
(int) (x+y)(将x+yc语言函数的强制转换的值转换成int型)
(float)(5%3)(将5%3c语言函数的强制转换的值转换成float型)
其一般形式为
(类型名)(表达式)
注意c语言函数的强制转换 , 表达式应该用括号括起来 。如果写成
(int)x+y
则只将x转换成整型,然后与y相加

推荐阅读