算术运算符和表达式

C语言的运算符范围很宽,除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,下图是C运算符的分类

1  算术表达式

用算术运算符和括号将运算对象(也称操作数)连接起来的,符合语法规则的式子成为算术表达式。运算对象包括 常量 变量 函数。

C语言规定了各种运算符的结合方向,这是C语言特点之一,是别的高级语言所没有的。算术运算符的结合方向为“自左至右”又称为“左结合性”,以后还可以看到有些运算符的结合方向为“自右至左”即“右结合性”。

2 强制类型转换

(类型名)(表达式)

( double ) a    将a转换成double类型


3 自增自减运算符

作用是使变量的值增加或者减少1

++i   --i 先加/减再使用

i++   i-- 先使用再加/减

 4 有关表达式使用问题(不同的编译系统不一样)

C并没有具体的规定表达式的字表达式的顺序 允许编译系统自己安排 例如 a=f1()+f2(); 并不是所有的编译系统都是先调用f1函数再调用函数f2,又例如 i=3;(i++)+(i++)+(i++)有的编译系统求的结果是12有的编译系统求的结果是9。 还比如i=3;printf("%d,%d",i,i++);在有的系统中是按照从左至右求值,输出3,3.而多数编译系统中是按照自右而左输出4,3,所以不提倡printf("%d,%d",i,i++),提倡printf("%d,%d",j,i++)这种写法。


5 算术运算符

1.1  " + " 加法运算

1.2  " - "减法运算

1.3  " * "乘法运算

1.4  " / " 除法运算(不同的编译系统不一样)。这里需要说明的是如果除数或者被除数有一个为负数舍入的方向是不固定的,跟编译系统有关,大多数系统是"向零靠拢"。例如:-5%3 有的系统结果为-1,有的结果为-2.,多数系统是-1.更接近零。

1.5  " % "模运算,或求余运算,%两边均应为整数。


6  赋值运算符和赋值表达式

6.1赋值表达式

< 变量 >< 赋值运算符 >< 表达式 >

赋值表达式是自右至左的, 赋值运算符左侧的标识符成为左值,右侧的称为右值。并不是任何对象都可以作为左值的,变量可以作为左值,常量和表达式不能作为左值。

例如a=12; a+=a-=a*a;

它的运算顺序如下:

① a-=a*a 相当于a=a-a*a=-132;此刻a的值为-132;

② a+=-132 相当于a=a+(-132)=-264;此刻a的值为-264;


7  逗号运算符和逗号表达式

逗号运算符C语言提供的运算符,用它将两个表达式连接起来,又称为 顺序求职运算符 一般形式为 :  表达式1,表达式2 。逗号表达式的求解过程是 先求表达式1,再求表达式2,整个逗号表达式的结果是表达式2的值。

例如 (a=3*5,a*4),a+5

先计算出a=15,再计算出60(a的值仍然是15),再计算出20,最后整个逗号表达式的结果是20.


别的运算符待续......



毕业论文引言 随着计算机技术的发展与普及,计算机已经成为各行业最基本的工具之一,迅速进入千家万户。因此,掌握计算机应用的基本技能成为新世纪人才不可缺少的基本素质之一。为使计算机能正常工作, 除了构成计算机各个组成部分的物理设备外, 一般说来, 还必须要有指挥计算机“做什么”和“如何做”的“程序”。程序及其有关文档构成计算机软件, 其中用以书写计算机软件的语言称为计算机程序设计语言。 1 计算机程序设计语言简介 计算机程序设计语言是计算机可以识别的语言,用于描述解决问题的方法,供计算机阅读和执行,通常简称为编程语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。使用程序设计语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为所有的程序都需要程序设计语言才能完成,而计算机的工作是用程序来控制的,离开了程序,计算机将一事无成。 2 开发背景及意义 现有计算器不能计算表达式,这是一个缺陷,为此,开发了一个能直接计算表达式的计算器,这为计算提高了更大的方便,可以大幅度提高计算效率。 第二章 第三章 第一节 递归下降法的描述 3.1.1实现思想 它的主要原理是,对每个非终极符按其产生式结构构造相应语法分析子程序,其中终极符产生匹配命令,而非终极符则产生过程调用命令。因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。其中子程序的结构与产生式结构几乎是一致的。文法中每个非终结符对应一个递归过程(子程序),每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式可唯一地确定选择某个候选式进行推导。 3.1.2算法的特点 递归下降法是语法分析中最易懂的一种方法。递归下降法要满足的条件:假设A的全部产生式为Aα1|α2|……|αn ,则必须满足如下条件才能保证可以唯一的选择合适的产生式 predict(Aαi)∩predict(Aαj)=Φ,当i≠j. 3.1.3构造递归下降语法分析程序 采用了递归子程序方法进行语法分析,对文法中的每个非终极符号按其产生式结构产生相应的语法分析子程序,完成相应的识别任务。其中终结符产生匹配命令,非终结符则产生调用命令。每次进入子程序之前都预先读入一个单词。因为使用了递归下降方法,所以程序结构和层次清晰明了,易于手工实现,且时空效率较高。实际的语法分析工作,从调用总程序的分析子程序开始,根据产生式进行递归调用各个分析子程序。 第二节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值