秋栈博客

七月

C语言自增自减运算符

7
2021-10-12
 
#include 

  void main() /*主函数*/

  {

  int a,b,c,d;

  a=5;

  b=5;

  c=(a++)+(a++)+(a++);

  d=(++b)+(++b)+(++b);

  printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

  }

自增自减运算符语法

自增运算符 ++ 使操作数的值加1,其操作数必须为:可简单地理解为变量。 ++i 表示:i自增1后再参加其他运算 i++表示:i先参与运算后i的值再自增1 自减同理; 举例:
#include
int main(){
	int i=3;
	int j=4;
	
	i++;
	++j;
	printf("%d,%d\n",i,j);
	
	return 0;
}
结果:4,5 来做一点小改动:
#include
int main(){
	int i=3;
	int j=4;
	
	int a = i++;
	int b = ++j;
	printf("%d,%d\n",a,b);
	
	return 0;
}
这里结果就是:3,5 ++前置:i自增1后再参与其它运算 ++后置:i参与运算后,i的值再自增1 a = i++;由于是先执行赋值运算,再自增,所以结果是a=3,i=4;而b = ++j,则因先自增,然后再赋值,所以b,j均为5。 如果再复杂点呢?
#include
int main(){
	int i=3;
	int j=4;
	
	int a = i++ + i++;
	int b = ++j + ++j;
	printf("%d,%d\n",a,b);
	
	return 0;
}
结果是7,12 当编译器看到++j + ++j时的第一步:算左边的++j,此时j=5,第二步看到后面的+号 继续往下走,又看到一个++j,只好又自增一次再参与运算,此时j=6,那么6+6=12.  
  • 0