毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
计算机游戏两个火柴堆的程序设计(5)
关系运算符的优先级比算术运算符低。因此,表达式i < lim - 1等价于i < (lim - 1)。
逻辑运算符&&与||有一些较为特殊的属性,由&&与||连接的表达式按从左到右的顺序进 行求值,并且,在知道结果值为真或假后立即停止计算。绝大多数C语言程序运用了这些属 性。例如,下列在功能上与第1章的输入函数getline中的循环语句等价的循环语句:
for (i=0; i<lim—1 && (c=getchar() ) != '\n' && c != EOF; ++i) s[i] = c;
在读入一个新字符之前必须先检查数组s中足否还有空间存放这个字符,因此必须首先测试 条件i<lim-1。如果这一测试失败,就没有必要继续读入下一字符。
类似地,如果在调用getchar函数之前就测试c是否为EOF,结果也是不正确的,因此, 函数的调用与赋值都必须在对c中的字符进行测试之前进行。
运算符&&的优先级比||的优先级高,但两者都比关系运算符和相等性运算符的优先级低。 因此,表达式
i<lim-1 & & (c = getchar() ) != '\n' && c!= EOF
就不需要另外加圆括号。但是,由于运算符!=的优先级高于赋值运算符的优先级,因此,在 表达式
(c = getchar()) 丨=''\n'
中,就需要使用圆括号,这样才能达到预期的目的:先把函数返回值赋值给c然后再将c 与'\n'进行比较。
根据定义,在关系表达式或逻辑表达式中,如果关系为真,则表达式的结果值为数值1; 如果为假,则结果值为数值0。
逻辑非运算符!的作用是将非0操作数转换为0,将操作数0转换为1。该运算符通常用 于下列类似的结构中:
if (!valid)
一般不采用下列形式:
if (valid == 0)
当然,很难评判上述两种形式哪种更好。类似于! valid的用法读起来更直观一些(“如果不 是有效的”),但对于一些更复杂的结构可能会难于理解。
自增运算符与自减运算符
c语言提供了两个用于变量递增与递减的特殊运算符。自增运算符++使其操作数递增1, 自减运算符使其操作数递减1。我们经常使用++运算符递增变量的值,如下所示:
if (c = '\n')
++nl;
++与--这两个运算符特殊的地方主要表现在:它们既可以用作前缀运算符(用在变量前 面,如++n)。也可以用作后缀运算符(用在变量后面,如n++)。在这两种情况下,其效果都 是将变量n的值加1。但是,它们之间有一点不同。表达式++n先将n的值递增1,然后再使 用变量n的值,而表达式n++则是先使用变量n的值,然后再将n的值递增1。也就是说, 对于使用变量n的值的上下文来说,++n和n++的效果是不同的。如果n的值为5,那么
x = n++;
执行后的结果是将x的值置为5,而
x = ++n;
将x的值置为6。这两条语句执行完成后,变量n的值都是6。自增与自减运算符只能作用于 变量,类似于表达式(i + j)++是非法的。
在不需要使用任何具体值且仅需要递增变量的情况下,前缀方式和后缀方式的效果相同。 例如:
if (c == '\n') nl++;
但在某些情况下需要酌情考虑。例如,考虑下面的函数squeeze(s, c),它删除字符串s 中出现的所有字符c
/* squeeze: delete all c from s */ void squeeze(char s[], int c)
{int i, j;
for (i = j = 0; s[i] != '\〇';i++) if (s[i] != c)
s[j++] = s [i]; s[j] = '\0';}
每当出现一个不是c的字符时,该函数把它拷贝到数组中下标为j的位置,随后才将j的值 增加1,以准备处理下一个字符。其中的if语句完全等价于下列语句:
共6页:
上一页
1
2
3
4
5
6
下一页
上一篇:
JSP在线理财网站的设计与开发
下一篇:
VB.net服装企业库存管理系统设计与开发
高职院校公共机房的管理维护【2471字】
高级RFID阅读器應用對处理器的要求【1354字】
风机风量自动报警装置【517字】
项目管理茬软件中的應用【5351字】
随机型存储模型應用研究【1393字】
间谍软件之危害及其防范對策【1382字】
银行行办公信息服务系统【1544字】
志愿者活动的调查问卷表
承德市事业单位档案管理...
AT89C52单片机的超声波测距...
医院财务风险因素分析及管理措施【2367字】
公寓空调设计任务书
国内外图像分割技术研究现状
神经外科重症监护病房患...
C#学校科研管理系统的设计
中国学术生态细节考察《...
10万元能开儿童乐园吗,我...