请问一下c语言中++i跟i++,以及——i跟i--的区别啊

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-31
谁帮我解释一下C语言中的++i与i++的区别及应用

在实际编程中,为了程序的简练,经常使用 i++ 与 ++i 这样的语句,现简单对她们的区别做一说明:

i++ :先进行运算,再执行 i = i +1的操作;而 ++i 则是先执行 i = i +1的操作,再进行运算;举例说明如下:

int x=0, y=0;

y = x++;

执行后y的值仍为 0;而

int x=0, y=0;

y = ++x;

执行后y的值则为 1;

再例如:

int x=0;

if( x++ == 1) //条件为假

{

}



int x = 0;

if( ++x == 1) //条件为真

{

}

通过以上两个实例,我想大家应该可以很好的理解和使用i++和++i 了。

对于变量i来说都会在原来基础上加1的,重点区别于式子本身的值;
1、i++式子值为i原来的值,就是通俗说的“先赋值再加1”;
2、而++i式子值为i变化后的值,也就是“先加1后赋值”;
在for循环中,如果要表示递增,两种都可以。

扩展资料:C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考资料:百度百科-c语言

++i以及i++和--i以及i--之间的区别原理是一致的,搞清楚一种就能理解另一种了。
说一下前缀(++i)自增和后缀(i++)自增之间的区别:
以例子来说:
例子1:
int i = 5 ;
int b = 0 ;
b = ++i ;
例子2:
int i= 5 ;
int c = 0 ;
c = i++ ;
两个例子中,例子1里面 b = 6 , 例子2里面 c =5 。
我们把这个自增做一个变换,就一目了然了:
b= ++i 相当于=> i = i + 1 ; b= i ; //前缀自增:所有的操作要等自身值增1之后
c= i++ 相当于=> b= i ; i = i + 1 ; //后缀自增:先将自身现有的值给别人,再对自身增1
大体就是上面这样了

关于自增自减运算,很多书籍没有把问题讲清楚,在C语言里是这样的:

1.后置运算:k++表示先运算,后自加。
意思是遇到k++了,我先把当前的k的值拿来参加运算,后面再去管它的自加。
那么,【“后面”后到什么程度呢?要后到当前的语句执行完,即遇到分号;表示
语句执行完了,所以k才自加1。】

如:int k=5,b=0;
b=k++;的意思就是,先算b=k(即b=5),遇到分号;表示语句结束,k才自加1,即k变为6。

2.前置运算:++k表示先自加,后运算
这个意思就是遇到++k了,先把k的值加了1,再往后执行别的。

如:int k=5,b=0;
b=++k;的意思就是,先把k自加1,即k为6,再算b=k(即b=6)。

掌握好这两点,k--和--k也是一样的道理。

++i 和 i++ 都会对i = i+1的运算
区别在于++i返回的是i+1,而i++返回的是i。
比方说 a = ++i;和a = i++;a的值就不同

++i是使用计算后的值,寄运算++i后的值
i++使用的是i本身的值,然后在运算+1操作。
--i和i--与+号操作是一样的。
只要记住先看见加号,就要先计算在使用,先看见i就先使用i在计算。

++i和i++举个例子
int a=10;
int b;
b=++a; 则b=11,a=11, 属于前++ 返回的值是a加1之后的值
b=a++;则b=10,a=11,属于后++ 返回的值是a加1之前的值
--i和i--同理 你可以自己写写

  • 请问一下c语言中++i跟i++,以及——i跟i--的区别啊
    答:c= i++ 相当于=> b= i ; i = i + 1 ; //后缀自增:先将自身现有的值给别人,再对自身增1 大体就是上面这样了
  • c语言中的i一般是从0开始,还是1开始
    答:如果对数组进行操作i一般都是从0开始,因为数组的下标是从0开始的;比如要n的阶乘i则需要从1开始,因为0开始,任何数乘以0都等于0.
  • c语言中, i+=1的意思是什么
    答:c语言中,i+=1就是i=i+1。i+=1是i=i+1的缩写。它们表示的意思都是相同的,并且在运行时的结果也是相同的,c语言中类似这样的缩写还有a+=b →a=a+b 、a-=b →a=a-b 、a*=b →a=a*b 、a/=b →a=a/b 5、a%=b →a=a MOD b ,即a/b的余数。
  • 有谁帮我解释一下,C语言中i-=i+=i*=i-5,这个表达式,还有学习C语言怎么...
    答:先用i-5,然后,在用i去乘i-5的结果,结果存入i,然后,i*i结果存入i,然后,i+i结果存入i,然后,i-i结果存入i;至于怎么学:关键在于多练,学习编程语言,多动手是最有效的方法;
  • C语言中i=~0,以整数形式输出i为什么是-1啊?拜托了各位 谢谢
    答:假设是8位进制 那么0 的二进制:0000 0000 ~0的意思是,每一位都反:1111 1111 注意这个二进制的最高位是1,那么它是负数,计算机中负数都是补码, 把补码 1111 1111 求原码就是高位不变,其它取反最后+1 所以 是1000 0000+1 是1000 0001 这个数就是-1 可以记个公式:~n=-(n+1)
  • c语言i++是什么意思?
    答:i++和++i是C语言运算符,i++是后缀递增的意思,++i是前缀递增的意思。1、i++是后缀递增的意思,i++是先进行表达式运算,再进行自增运算。把i++的运算过程拆分开,等效于i=i+1可以看到运算结果是一致的。x = i ++; //先让x变成i的值1,再让i加1 2、++i是前...
  • 请问一下,C语言中应如何以不同的进制输入数字
    答:d,i :用来输入有符号的十进制 u :用来输入无符号的十进制 o :用来输入无符号的八进制 x,X:用来输入无符号十六进制 c :用来输入单个字符 s :用来输入字符串,必须以非空白字符开始,以第一个空白字符未结束标志,空白字符为‘\0’且为字符串结束标志 f :输入实数 e,E,g,G:与f相同...
  • c语言中的[ ]表示什么意思。例如变量i[1],i[0]什么的。。。
    答:表示数组,i[0]是数组i的第一个元素
  • c语言中++i和i++有什么区别
    答:在C语言中,`++i`和`i++`是两种不同的运算符,它们在操作数和结果上有一些区别。1. `++i`:这是一个前置自增运算符。它首先对变量i进行自增操作,然后再返回这个自增后的值。换句话说,`++i`首先返回的是变量i自增后的值,然后再将变量i的值加一。例如:int i = 5; int incremented...
  • C语言中++i 和i++有啥区别啊?
    答:i++和++i都是c语言里的自增,但是它们自增的顺序不同。++i表示,i自增1后再参与其它运算,而i++ 则是i参与运算后,i的值再自增1。for循环里循环变量增值用i++,而不用++i是因为在循环结构里需要循环变量来结束循环,而使用i++则会导致本来应该继续的循环少执行一次,所以循环结构里通常都是...