C语言表达式
点击次数:39 次 发布日期:2008-12-01 11:58:19 作者:源代码网
|
源代码网推荐2.7.1 表达式中的类型转换 源代码网推荐混合于同一表达式中的不同类型常量及变量,应均变换为同一类型的量。c语言的编译程序将所有操作数变换为与最大类型操作数同类型。变换以一次一操作的方式进行。具体规则如下: 源代码网推荐 源代码网推荐1)所有char及shortint型量转为int型,所有float转换为double。 源代码网推荐2)如操作数对中一个为longdouble,另一个转换为longdouble。①要不然,一个为double,另一个转为double。②要不然,一个为long,另一个转为long。③要不然,一个为unsigned,另一个转为unsigned。 源代码网推荐一旦运用以上规则。每一对操作数均变为同类型。注意,规则2)有几种必须依次应用的条件。 源代码网推荐图2-1示出了类型转换。首先,charch转换成int,且floatf转换成double;然后ch/i的结果转换成double,因为f*d是double;最后由于这次两个操作数都是double,所以结果也是double. 源代码网推荐2.7.2构成符cast 源代码网推荐可以通过称为cast的构成符强迫一表达式变为特定类型。其一般形式为: 源代码网推荐(type)expression(type)是标准c语言中的一个数据类型。例如,为确保表达式x/2的结果具有类型float,可写为: 源代码网推荐(float)x/2通常认为cast是操作符。作为操作符,cast是一元的,并且同其它一元操作符优先级相同。虽然cast在程序中用得不多,但有时它的使用的确很有价值。例如,假设希望用一整数控制循环,但在执行计算时又要有小数部分。 源代码网推荐 ![]() 源代码网推荐若没有cast(float),就仅执行一次整数除;有了cast就可保证在屏幕上显示答案的小数部分。 源代码网推荐2.7.3空格与括号 源代码网推荐为了增加可读性,可以随意在表达式中插入tab和空格符。例如,下面两个表达式是相同的。 源代码网推荐x=10/y*(127/x);x=10/y*(127/x); 源代码网推荐冗余的括号并不导致错误或减慢表达式的执行速度。我们鼓励使用括号,它可使执行顺序更清楚一些。例如,下面两个表达式中哪个更易读一些呢? 源代码网推荐x=y/2-34*temp&127;x=(y/2)-((34*temp)&127); 源代码网推荐2.7.4c语言中的简写形式 源代码网推荐c语言提供了某些赋值语句的简写形式。例如语句: 源代码网推荐x=x+10; 源代码网推荐在c语言中简写形式是: 源代码网推荐:x+=10; 源代码网推荐; 源代码网推荐这组操作符对+=通知编译程序将x+10的值赋予x。这一简写形式适于c语言的所有二元操作符(需两个操作数的操作符)。在c语言中, 源代码网推荐variable=variable1operatorexpression; 源代码网推荐与variable1operator=expression相同。请看另一个例子: 源代码网推荐x=x-100; 源代码网推荐; 源代码网推荐其等价语句是 源代码网推荐x-=100; 源代码网推荐简写形式广泛应用于专业c语言程序中,希望读者能熟悉它。 源代码网供稿. |

