理清自增运算符

#include <stdio.h>
int main() {
	int i = 2;
	int y = 0;
	/* 运算先考虑优先级,操作数两边优先级相同再考虑结合性。 */

	 /* 尽管表达式中运算符有左右结合顺序之分,但是这是局部而言,应首先从整体上从左往有读表达式 */
	//*printf("%d", y = ++i + i++ + i);*//* 9 */   printf("%d", ++i + i++ + i);/*9*/    /*这两个同地位(不分先后,实现方式是运行前一个print的时后,注释掉后一个
	//																	   同样的,运行第二个printf是把第一个printf注释掉,这样就可以屏蔽掉相互之间
	//																	   由于自增带来的副作用而造成y值和右值的混乱*/

	//*从上面的运行结果可知,printf表达式的值与是不是赋值语句无关*/

	//printf("  i1 = %d\n   %d\n  i2 = %d\n", i, y = ++i + i++ + i, i);/*4,9,4*/
	//printf("  i1 = %d\n   %d\n  i2 = %d\n", i, y , i);/*4,9,4*/
	说明用于计算y的i值是3.

	printf("  i1 = %d\n   %d\n  i2 = %d\n", i, y = i++ + i, i);/*3,4,3*/


	  return 0;
}
posted @ 2024-10-21 11:41  xuchaoxin1375  阅读(3)  评论(0编辑  收藏  举报  来源