A. 请问c语言中p-=1是强制换换把这是什么转换什么意思求解,急,
-=是一个运算符而已,并不是什么转换。
p-=1等价于p=p-1;
另外还有*=, +=, /=, ^=,一般用于进行运算的运算符都能写成这种形式。
如果是单纯的-1操作,为了加快效率,最好用自增运算,如++p;这样运算会在只cpu中运算,而不用去和内存交互,效率比较高。
B. C语言中,数据类型的隐式转换与显式转换分别是个什么意思
显式转换,就是强制转换。在被转换睁凳吵的表达式前加(类型),比如:(float)5,就是把5显式转换成float类型。
隐式转换,就是不需要加强制转换,系统会自动做这个操作,比如:
double k;
k=10;
10是int型,不需要显式转换,系统自动会把它转为10.0。
(2)c语言状态转换什么意思扩展阅读:
隐式自动类型转换:
C++语言编译系统提供的粗此内部数据类型的隐式自动转换规则如下:
1、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等等;
2、赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;
3、函数调用时,将实参的值传递给形参,系悉侍统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参;
4、函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。
C. C语言中强制类型转换究竟改变了什么
不同类型的变量在内存中有不同的存储方式和不同长度,强制转型前后有什么不同都要转换过来。例如int y=3;char x=(char)y;,他们只是长短不同,就把y的高3字节全截掉,只把最低一个字节赋给了x;反过来,若char y=3;int x=(int)y;,那么,将把高3字节全用0补齐。若是浮点数与整型数强制转型,不仅存储长度发生了变化,而且存储方式也发生了变化:整数用补码表示,而浮点数用阶码+原码表示,都要一一转换过来。还有指针变量,转换也较复杂。强制转型时链丛为目标类型设置一个临时变量,棚森樱轮换后就用这个临时变量操作,一旦操作结束,临时变量也消春洞失了,整个过程是由编译器编译时安排好了的。
D. C语言数据类型的自动转换和强制转换有什么区别
一、指代不同
1、自动转换:参与运算量的类型不同,则先转换成磨颤同一类型,然后进行运瞎哪败算。
2、强制转换:是通过类型转换运算来实现的。
二、方式不同
1、自动转换:转换按数据长度增加的方向进行,以保证精度不降低。如int型缓皮和long型运算时,先把int量转成long型后再进行运算。
2、强制转换:功能是把表达式的运算结果强制转换成类型说明符所表示的类型。
三、特点不同
1、自动转换:是在源类型和目标类型兼容以及目标类型广于源类型时发生一个类型到另一类的转换。
2、强制转换:所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。