社区
C语言
帖子详情
C语言中i++与++i的区别
~兰心蕙质~
2019-06-12 12:28:44
i++是先赋值,再给i加1 ++i是先给i+1,再赋值 比如: i=1; x=i++; 表示x=1, i=2 i=1; x=++i; 表示x=2,i=2
...全文
269
3
打赏
收藏
C语言中i++与++i的区别
i++是先赋值,再给i加1 ++i是先给i+1,再赋值 比如: i=1; x=i++; 表示x=1, i=2 i=1; x=++i; 表示x=2,i=2
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lin5161678
2019-06-12
打赏
举报
回复
值计算结果不同 副作用相同
qybao
2019-06-12
打赏
举报
回复
原则上,x=表达式,是把表达式的计算结果赋给x
i++表达式,表达式是取i的当前值作为计算结果,然后再i自增1
++i表达式则是先i自增1,然后再取i的最新值作为表达式的计算结果
csucxy
2019-06-12
打赏
举报
回复
1、前置与后置++的操作数都必须是一个左值(关于左值、右值,请查看C/C++标准相关内容)。这里之所以提“左值”,不提“变量”,请看如下示例:
有
int i = 0;
则
++i、i++明显合法,因为i是变量,但表达式++(++i)或(++i)++也均合法,但++(i++)、(i++)++非法。因为表达式++i是一个左值,而i++是一个右值。当然变量是一个左值。
2、前置与后置++运算均会让其操作数自加1,其区别在于前置、后置++运算符与操作数所构造的表达式的值不同。如:
有
int i = 0;
则
表达式++i的值为1,而表达i++的值为0。即所谓,表达式++i的值为i自加之后i的值,而i++的值则为i自加之前的i的值。但不管是前置还是后置,i均会自加1。
所以int型变量初值i等于0时,如果分别有
int j=++i;
和
int j=i++;
则变量j的值分别为1和0。
3、尽管++运算符的操作一般为整数型数据类型,但并不是不可以是非整数型。如
float f = 0.3;
float ff = ++f;
也合法,以上语句执行后,ff的值为1.3,但这明显不是一种值得推荐的计算。
4、在计算过程中,表达式++i与变量i对应同一段内存空间,而表达式i++与变量i分别有自己的内存空间。另外,前置++运算效率要高于后置++,其中一个很重要原因是前置++计算既节约了内存空间,也减少的内存空间分配与回收的过程,当然,一般情况下,这种内存空间与CPU运算时间的节约可以忽略。
表达式++i与变量i对应同一段内存空间,也是表达式++i是一个左值表达式的原因。
5、不要试图对右值(如常量)表达式进行++运算。也不要做如下运算:
unsigned int i = 0, j;
j = --i;
以上语句,在编译、运行时均不会报错,但语句执行后,变量i、j值明显不会是-1。
C语言
中
i
++
和
++
i的
区别
C语言
中
i
++
和
++
i的
区别
C语言
中
++
i和i
++
是有
区别
的!快速理解的话就是用一句话概括: 1、i
++
是先赋值再运算+1; 2、
++
i是先运算+1再赋值; i
++
和
++
i都是
c语言
里的自增,但是它们自增的顺序不同。
++
i表示,i自增1后再参与其它运算,而i
++
则是i参与运算后,i的值再自增1。 下面我用一个具体的程序为大家讲解一下 i
++
输出结果: 即程序运行到printf("%d\n...
++
i i
++
在
C语言
和java
中
的
区别
在两种常用的语言
中
,最基本的运算符用法不一样,确实很容易混淆。 先看几段小程序运行结果 java
中
: public class Test1 { public static void main(String args[]){ int i=0,k; k =
++
i +
++
i +
++
i + i
++
; // 讨论的 表达式 // i=
++
i +
C 语言
++
i和i
++
的
区别
对于
++
i和i
++
都是自增运算,不同之处在于执行的顺序和返回的结果。
C语言
中
i
++
和
++
i 有什么
区别
?
今天有同学问
C语言
中
for循环里那个 i
++
和
++
i 是否有
区别
,我告诉他在for循环
中
是没有
区别
的,现在具体说一下 i
++
和
++
i 的
区别
。我们先用while语句写一下 for(i=1;iint i=0;while (iprintf("www.slyar.com");i
++
;}再用while语句写一下 for(i=1;iint i=0;while (iprintf(
C语言
++
i,i
++
的
区别
C语言
++
i,i
++
的
区别
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章