毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
计算机游戏两个火柴堆的程序设计(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服装企业库存管理系统设计与开发
jsp《计算机硬件技术基础...
基于WEB的计算机导购平台的设计与实现
C#中国象棋游戏的设计与实现
jsp+oracle乐豆游戏系统的设计与实现
jsp游戏购买系统设计
ASP.NET的计算机协会管理系统的设计与实现
Android拼图游戏设计与实现+源代码
从政策角度谈黑龙江對俄...
提高教育质量,构建大學生...
压疮高危人群的标准化中...
上海居民的社会参与研究
STC89C52单片机NRF24L01的无线病房呼叫系统设计
浅论职工思想政治工作茬...
基于Joomla平台的计算机学院网站设计与开发
浅谈高校行政管理人员的...
酵母菌发酵生产天然香料...
AES算法GPU协处理下分组加...