i++与++i是什么意思?

自增(++),自减(--)运算符

谭浩强的书是这样描述的:

自增(++)自减(--)运算符的作用是使变量的值加1或者减1,例如:

++i,--i(在使用i之前,先使i的值加(减)1)

i++,--i(在使用i之后,使i的值加(减)1)

粗略的看,++i和i++的作用相当于i=i+1。但++i和i++的不同之处在于:++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语句。

①j=++i;(i的值先变为4,再赋值给j,j的值为4)

②j=i++;(现将i的值3赋给j,j的值为3,然后i变为4)

又例如

i=3

printf(“%d”,++i);

输入为4,若改为

printf(“%d”,i++)

则输出为3。

自增自减运算符常用于循环语句中,使循环变量自动加1;也用于指针变量,使指针指向下一个地址。

有些专业人士在使用++和--时喜欢运用一些技巧,但是往往会出现一些意想不到的结果,例如i+++j,是理解为(i++)+j还是i+(++j)呢?程序应当清晰易读,不容易引起歧义。建议谨慎使用++与--运算符,只运用最简单的形式i++与i--。而且把他们作为单独的表达式,而不要在一个复杂的表达式中使用++与--运算符

总结:

i++ 即后加加,原理是:先自增,然后返回自增之前的值
++i 即前加加,原理是:先自增,然后返回自增之后的值

(都是先自增,然后反回值)
一个变量也是表达式,多个表达式的加减法运算都是从左到右进行的
真实编程中,我们不会写这些复杂的i++代码,但是在考试,笔试中可能有关于i++的用法不同判断

下面举一个例子:

#include <stdio.h>
int main() {
	int n=9,a;
	while (n>6) {
		a=n--;
		printf("%d\t",n);
		printf("%d\n",a);

	}

	return 0;
}

我们发现n--后,n先减1,然后返回自增之前的值。

这时自增前的值就赋给a

再举个例子:

#include <stdio.h>
int main() {
	int n=9;
	while (n>6) {
		printf("%d\n",n--);
	}
	printf("\n");
	int m=9;
	while (m>6) {
		printf("%d\n",--m);
	}
}

有什么不足的地方欢迎各位大佬指正

操作系统:Windows10

软件:Devc++

编译器:TDM-GCC 4.9.2 64-bit Release

  • 31
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值