对自增、自减运算符的加深理解

今天小编将通过几个简单的语句来使大家更好的理解自增、自减运算符。

首先先简单介绍一下自增、自减运算符的定义和使用。

自增运算符(++)和自减运算符(- -)都属于单目操作符(运算符两侧只有一个操作数)。++是一种自增的操作符,又分为前置++和后置++。- -是一种自减的操作符,也分为前置- -和后置- -。

那么自增运算符和自减运算符的使用,我们只需记住四条口诀。

前置++计算口诀:先加1,后使用;后置++计算口诀:先使用,后加1

前置- -计算口诀:先减1,后使用; 后置- -计算口诀:先使用,后减1

接下来通过几个简单语句来熟练运用++和- -,加强对其的理解

#include<stdio.h>
int main()
{
	int a = 8;
	printf("%d\n", ++a);
	printf("%d\n", a++);
	printf("%d\n", --a);
	printf("%d\n", a--);
	printf("%d\n", -a++);
	printf("%d\n", a);
	return 0;
}

运行后的结果如下图

a的初始值是8,第一个printf语句++a  先加1后使用,也就是8+1=9 , 9再赋值给a使用,该语句打印的结果就是9;

由于这个程序是连续的,所以对第二个printf语句来说,它的初始值是第一个语句执行完后a的值(变成了9),而不是最开始的初始值8!

第二个printf语句a++  先使用后加1,9先赋值给a使用,打印的结果就是9。但请注意,该语句还未完成。“后加1”,  9+1等于10,也就是第二个printf语句的结果是10;

第三个printf语句- -a   先减1再使用,第二个printf语句的结果10-1等于9,9再拿去给a使用,打印的结果就是9;

第四个printf语句a- -  先使用再减1,第三个printf语句的执行结果9先拿给a使用,也就是打印9,“再减1”,9-1等于8,该语句最后的结果就是8;

第五个printf语句-a++  ,也就是-(a++),  先使用后加1,先使用a的话就是8,前面有个负号,打印的结果就是 -8,“后加1”指的是8加1,而不是-8加1。大家要注意“加1”“减1”的对象都是a。所以该语句最后的结果是8+1等于9;

第六个printf语句打印的结果就是a,也就是第五个printf语句最后的结果9,所以打印9。


粗鲁地理解“使用”就是:把某个值给a去用,在本题中就是需要把a打印出来。


到这里不知道大家理解了吗,还不是很清楚的话,可以练练下面这道题

#include <stdio.h>
int main()
{
	int a, b, c;
	a = 5;
	c = ++a;
	b = ++c, c++, ++a, a++;
	b += a++ + c;
	printf("a = %d b = %d c = %d\n:", a, b, c);
	return 0;
}

a,b,c的结果分别是什么呢?大家可参考下面的注释

#include <stdio.h>
int main()
{
	int a, b, c;
	a = 5;
	c = ++a;// ++a:加给a+1,结果为6,用加完之后的结果给c赋值,因此:a = 6  c = 6
	b = ++c, c++, ++a, a++;
   // 逗号表达式的优先级,最低,这里先算b=++c, b得到的是++c后的结果,b是7
   // b=++c 和后边的构成逗号表达式,依次从左向右计算的。
   // 表达式结束时,c++和,++a,a++会给a+2,给c加1,此时c:8,a:8,b:7
	b += a++ + c; // a先和c加,结果为16,在加上b的值7,比的结果为23,最后给a加1,a的值为9
	printf("a = %d b = %d c = %d\n:", a, b, c); // a:9, b:23, c:8
	return 0;
}

答案是:a=9 ,b=23 ,c=8

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值