C语言中++i,i++,--i,i--如何使用什么意思?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-31
在C语言中i++和++i怎么用?

假设i=1;
a=i++;//先计算a=i=1;然后计算i的自加1;最后i=2;a=1;

a=++i;//先计算i的自加1,i=2,然后计算a=i=2;最后i=2;a=2;

i++的++在后面,说明是最后才加1,也就是先用i的值后,i再加1;比如, i = 3; b = i++;像上面说的,先用i的值后,也就是把i的值赋给b后i再加1,也就是b 等于3,i等于4; ++i的++在前面,说明是先加1,再用i的值。比如 i = 3; b = ++i;像上面说的,先加i的值,也就是i加1等于4后,再用i的值,也就是再把i的值赋给b,最后b等于4,i也等于4; 但有一点要注意,比如有这样两条语句。一开始i等于4。然后有下面这两条语句。 i++; b = i; 这是两条语句。哪条是把它们放在同一行也是两条语句。如下。 i++; b = i; 也是两条语句。但我现在不是想说两条语句,而是要说i++;的情况。 上面说i的最初值是4,在执行 i++; b = i; 时,首先是执行i++,这个时候就别说什么后加1,先加1了。因为只要i++;这样的一条自递语句,不管是i++还是++i都是一样的。所以当执行i++;后,i就等于5,b也等于5。你不能这样认为。因为++在后面,所以要先使用i的值,也就是上面的先把i 赋值给b,然后i再加1。这是错的,只因为i++是一条单单的自递语句,不包含任何东西的自递语句。 总结, i++; //不包括任何东西的自递语句 b = i; 和 b = i++;是不一样的。哪怕最后i的值都一样,可b的值是不一样的。如果i的最初值为2,那么 i++; b = i;的b就等于3。b = i++;的b值就等于2。 关于i--,楼主就自己想下,不懂可以再问。因为只有这样才能让楼主更好的理解。不能要我再把i--说完。如果我说完,楼主不就没有东西要想了吗?

++i,先自增后运算,i++,先运算后自增,--i,先自减后运算,i--先运算后自减

举例来说:
int i=1;
++i;//此i先加1,此时i的值是2
而i++;// i在这个语句中的值仍是1;当且执行完这一句后i 的值才为2
--i和i--同上

++i 本身的数值当前+1了
i++ 当前的i的值还是i,但是下次用到i的时候i就是i+1的值了
--i 和i-- 是同样的道理

  • C语言中,i , i,以及i--,--i,啥意思,如何区别,老是搞不清,高手支个招...
    答:i--意思是先带入原来的变量i的值运算,然后i自减一,下次用时i就变成i-1了 --i是先自减一,然后带入计算,就是说,当前你所算的式子上用的就是i-1。
  • c语言中i--,--i和-i--有什么区别
    答:--i 是先执行i=i-1,然后再使用i的值, 这时的i 值就是表达式--i的值。i-- 是先使用i的值作为表达式i--的值,然后,执行i=i-1操作。include"stdio.h"void main(){int i=4,j,k;j=i--; //i先赋值给j,然后i在执行i=i-1;k=--i; //i先执行i=i-1,然后再赋值给;printf...
  • c语言中的- i--是什么意思?
    答:-i--就是先进行i--运算,然后再取其负值。下面是C语言运算符的优先级:--与负号处于同一优先级,而结合方向是从右到左,所以是先进行i--运算,再取负号。i--就是把i自减1,但是它的返回值却是i,这就是i--与--i的区别,--i的返回值就是i-1了。具体看下面一个程序:include<stdio.h>...
  • c语言中i--,--i和-i--有什么区别
    答:意思一样,只不过你的程序有点问题,第二个程序中 if (s1[i] = '\0'){ strcat(ch, &s2[i]);} 应该为 if (s1[i] = = '\0'){ strcat(ch, &s2[i]);}
  • C语言中++i,i++,--i,i--如何使用什么意思?
    答:++i,先自增后运算,i++,先运算后自增,--i,先自减后运算,i--先运算后自减
  • C语言 请问代码里面的i--,i++什么意思
    答:++i是指先把i加上1后在对i进行运算。举个例子 i=0;n=0;当执行n=++i后;是 n的值就是1;i的值为1;而若是执行n=i++则,n的值为0。i为1;换句话说n=++i是先执行n=i;在对i自加运算。n=i++;是先执行i的自加运算再把i的值赋予n。
  • C语言 for(i--;i--;i--)
    答:然后是判定表达式2,表达式值为真则执行循环体,然后继续执行表达式3,否则跳出循环,结束for语句.(C语言中用0来表示假,非零来表示真)所以 for(--i;i>=0;i--)的意思就是,先执行一次--i,然后判定i是否大于等于零,若是i大于等于零,则执行循环体,然后再执行i--,若i小于零,则退出for循环 至此,...
  • c语言中i--是啥意思
    答:i--是后置操作 --i是前置操作 例 int a = 0;int i = 0;a = i--;//先a = i ; 然后 i = i - 1;所以a == 0;/// int a = 0;int i = 0;a = --i;//先i = i - 1 ; 然后 a = i;所以a == -1;
  • c语言中i--的具体含义,题目如下
    答:i--:i=i-1;--i: i=i-1 区别在于i--先运算再减一,--i先减1再运算
  • c语言i--i的值是多少??i是int,初值是3
    答:如果是i---i的话...麻烦一些,因为编译器便宜方向的不同,常常会得到不同的结果,VC是从左向右进行便宜,而TC是从右向左,就分别得到 (i--)-i和i-(--i)两个结果,万幸在本例结果都是零.我们在编码时势必摈弃这种摸棱两可的表示方法,我们的算法完全可以用更加显然的形式来表达.关于自增和...