Demo entry 6760825

1

   

Submitted by anonymous on Sep 18, 2018 at 11:50
Language: C. Code size: 509 Bytes.

/*由&&与||连接的表达式按从左到右的顺序求值,并且在知道结果值为真或假后立即停止计算 */

for (i=0 ; i<lim-1 && (c=getchar()) != '\n' && c != EOF; ++i) 
	
	/* 在读入一个新字符之前必须先检查数组s中是否还有空间存放这个字符,因此必须首先测试条件i<lim-1。若
	这一测试失败,就没有必要继续读下一字符。类似地,如果在调用getchar函数之前就测试c是否为EOF,结果也
	是不正确的,因此,函数的调用与赋值都必须在对c中的字符测试之前进行。*/

	/*运算符&&的优先级比||的优先级高,但两者都比关系运算符和相等性运算符的优先级低。因此。表达式
	 
	 i<lim-1 && (c=getchar()) != '\n' && c != EOF

	 就不需要另外加圆括号。但是由于运算符!=的优先级高于赋值运算符的优先级,因此在表达式

	 (c=getchar()) != '\n'

	 中就需要使用圆括号:先把函数返回值赋值给c,然后再将c与'\n'进行比较 */

	s[i] = c;

This snippet took 0.00 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).