C语言中表达式求值要注意的几点
2012-03-06 16:32
316 查看
参考:《C和指针》
隐式类型转换
C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符型和短整型操作数在使用之前被转换为普通整型,这种转换称为“整型提升”。缺省整型长度一般是计算机最合适的长度,因此精度提升不会降低速度,并且实现起来也很容易。
在下面的例子中,a和b首先转换成整型进行计算,然后将结果截短并赋值给c
算术转换
如果某个运算符的各个操作数属于不同的类型,那么除非其中一个操作数转换为另一个操作数的类型,否则操作就无法进行。下面的层次体系称为寻常算术转换。
long double
double
float
unsigned long int
long int
unsigned int
int
如果某个操作数在这上面的排名较低,那么它首先将转换为另一个操作数的类型,否则操作无法进行。
隐式类型转换
C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符型和短整型操作数在使用之前被转换为普通整型,这种转换称为“整型提升”。缺省整型长度一般是计算机最合适的长度,因此精度提升不会降低速度,并且实现起来也很容易。
在下面的例子中,a和b首先转换成整型进行计算,然后将结果截短并赋值给c
char a, b, c; c = a + b;
算术转换
如果某个运算符的各个操作数属于不同的类型,那么除非其中一个操作数转换为另一个操作数的类型,否则操作就无法进行。下面的层次体系称为寻常算术转换。
long double
double
float
unsigned long int
long int
unsigned int
int
如果某个操作数在这上面的排名较低,那么它首先将转换为另一个操作数的类型,否则操作无法进行。
相关文章推荐
- C语言中表达式求值要注意的几点
- 栈的应用实例---表达式求值(C语言)
- C语言 写的 表达式求值。
- C语言表达式求值顺序
- Linux系统下用C语言实现浮点数四则运算表达式的求值
- 表达式求值,栈的应用(C语言)
- C语言 写的 表达式求值。
- c语言:表达式求值实现(包含加减乘除括号)
- c语言中使用宏,需要注意的的几点
- 使用栈解决表达式求值(C语言)及问题总结
- C语言注意事项——数据类型、操作符和表达式
- C语言中缀表达式转后缀表达式并利用后缀表达式求值 (小于10)
- NYOJ-35-表达式求值(C语言数据结构)
- 栈实现表达式求值(C语言)
- 关于C语言表达式求值问题的解释
- 栈的测试--四则运算表达式求值(C语言)
- C语言数据结构之逆波兰表达式求值
- 栈的操作和c语言实现算术表达式求值
- 注意:C语言中没有指定同一运算符的多个操作数或者某函数各个参数的求值顺序,如果代码的执行结果和求值顺序有关,都是不好的程序设计风格。
- C语言课设:中缀表达式转后缀表达式并求值(续)