我想知道c语言的强制运算符的准确格式是什么,

最近我正在备考计算机二级发现有的书上说,强制运算符应该为(类型名)(表达式),因为没有括号会使得(float)X+Y变成强制X变型然后+Y;
可是有的书上则说表达式不应该加括号,因为(float)(X/Y)表示的是X/Y计算后的结果再取的变型,所以不主张为表达式加括号。
我就很困惑,究竟该不该加括号呢??那一种说法才是正确的呢?为什么?等待您的解答

强制类型转换.以图示为例:

a=3,b=2.

(float)a/b结果为1.5;        int的a(3)变为float的a(3.0),即3.0/2=1.5,表达式的值以精度最高的为准.

                                       例如:3.0/2=3/2.0=1.5        而3/2=1

(float)(a/b)结果为1.0;     先计算(a/b)=1,因为都是整型的,再变int的1为float,即1.0

强制类型转化只对后面紧跟的那个变量进行转换,但是注意括号的优先级较高.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-22
两种都对,关键看需要:
如果需要对表达式的运算结果进行转换,则表达式需要加括号。如(float)(x+y)
如果只需要对表达式的运算量(假设第一个运算量)进行转换,则不能对表达式加括号。如(float)x/y ——这里进对x做强制转换。本回答被提问者采纳
第2个回答  2012-07-22
要看具体的需要,如果不加括号,就会进行自动转换,比如:

int a,b;

(float) a/b;

a会被显式转换为float类型,然后参与运算,所以b会被隐式转换为float类型。
第3个回答  2012-07-22
我的那书上是没括号
不过你可以弄个整型变量Z
使Z=X+Y
然后(float)Z
第4个回答  2012-07-22
都可以的
相似回答