C语言的表达式
C语言中表达式定义:
平时大家好像理解C语言是一门很难学的课程,里面内容过多,不利于记忆,我们今天讲解复习一下关于C语言表达式的一些内容,并从中进一步掌握关于c语言表达式知识。
我们之前讲解各个运算符号都是按运算符分类,把表达式细化为算术表达式,逻辑表达式等,今天我们首先给出一个统一的表达式的定义,我们下面来理解C语言中表达式的定义:
(1)立即数字、常量、单变量均为C语言中表达式;
例如: 有定义const int a=5 int b=10
3、 a、 b 均为表达式,为简单表达式。
(2)利用C语言运算符号将简单表达式合理的连接起来的式子也是表达式。
例如: 5+6 a+b a*b
(3)利用C语言运算符号将上列表达式合理的连接起来的式子也是表达式。
例如: (3+a*b)%3
有了上面递归的定义了,我们可以体会到,c语言中由于运算符丰富(17个等级,30多种运算符号),表达式形式多种多样,造成我们对c语言理解难,而有一种更愿意敬而远之的心理。我们在下面的讲解中贯彻一个原则。
C语言表达式原则:所有C语言的表达式都是有类型有数值的。
例如:
上面定义的变量 b 数值为10,类型为整型 ,a+b 数值为15类型为整型
c语言中逗号表达式的用法(3+a*b)%3 数值为2类型为整型
回忆我们数学中的表达式,我们数学中的初级表达式都是可以计算出一个相对精确的数值的。在数学课程中学习的数学表达式中,最常用的就是数值的加减乘除运算,这些运算在c语言中都有对应的表达式,因此这些表达式在C语言按照一样的规则计算可以得到数值。
数值在C语言中又分为整型、实型和字符型三种,实际上字符型是一种特殊的整型,一般认为字符型是一个字节的正整数,则它的取值范围为0-127,即对应ASCII的相应内容。
C语言表达式注意点:
C语言表达式的难点在于样式多,而且很多是特殊运算符号的运算。下面主要总结C语言中表达式和我们平时理解计算上的不同点,掌握这些不同点,在上面的原则下就可以解决所有关于表达式的疑问。
(1)赋值表达式
例如: int a,b; a=b=0;
在计算完该表达式后,a和b的数值都被赋为0,但是我们不要理解成a=0,b=0;
事实上这个表达式的计算是a=(b=0);尽管a和b的数值都为零,a和b被赋值的内容是不同。
b被立即数字0赋值,而a被表达式b=0赋值。赋值表达式规定赋值号右边的表达式值就作为赋值表达式的值,因而b=0这个表达式的数值为0,所以a=0。
(2)++ -- (含义是使变量增1 或减1)
例如: Int a=10,b;
b=a++; b被赋值为(a++)这个表达式 ,C语言规定 后缀的++以变量增加之前的数值为准,即a++的数值为a增加之前的赋值10。
b=++a; b被赋值为(++a)这个表达式,C语言规定 前缀的++以变量增加之后的数值为准,即++a的数值为a增加之后的赋值11。
后缀的—和前缀—类似。
(3)% 是对正数求取余数的运算符号,要求前后操作数均为整型,其运算级别与乘除相同。
例如:5%7=5
(4)/ 如果前后操作数均为整型,做的是整除
例如: 5/2=2 5.0/2.0=2.5 5.0/2=2.5
(5)关系和逻辑综合表达
明确数学上0<x<10和C++中的0<x<10是不同的。
C++中对应的表达式应该为0<x&&x<10
(6)逗号表达式的数值规定:依次计算逗号表达式的各个值,以最后一个表达式的数值,作为整个表达式的值。
例如 a++,b,10,5%2 这个表达式的数值以最后一个为准,它的数值为1
事实上,我们看到了,所有表达式的运算一定最后落实到数值的计算,最后一定会得到一个明确的数值,C语言中表示数值的类型就两种,一种是整型,一种是实型,这两种类型我们都应该经常使用,并不陌生,C语言的表达式也并不是那么可怕。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论