c语言 i++和++i什么区别?
20个回答
展开全部
c语言 i++和++i什么区别?c语言 i++和++i的区别:
1、i++式子值为i原来的值,就是通俗说的“先赋值再加1”;
2、而++i式子值为i变化后的值,也就是“先加1后赋值”。
而在for循环中,如果要表示递增,两种都可以。
扩展资料:
++属于C语言级别的单目/一元运算 3级:
++ unary-expression 前缀自增;
-- unary-expression 前缀自减;
unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 * , 正号+ ,负号- 位反~ 逻辑否。
sizeof unary-expression 求类型长度,对表达式求类型长度。
sizeof ( type-name ) 求类型长度。
1、i++式子值为i原来的值,就是通俗说的“先赋值再加1”;
2、而++i式子值为i变化后的值,也就是“先加1后赋值”。
而在for循环中,如果要表示递增,两种都可以。
扩展资料:
++属于C语言级别的单目/一元运算 3级:
++ unary-expression 前缀自增;
-- unary-expression 前缀自减;
unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 * , 正号+ ,负号- 位反~ 逻辑否。
sizeof unary-expression 求类型长度,对表达式求类型长度。
sizeof ( type-name ) 求类型长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c语言 i++和++i什么区别?c语言 i++和++i的区别:
1、i++式子值为i原来的值,就是通俗说的“先赋值再加1”;
2、而++i式子值为i变化后的值,也就是“先加1后赋值”。
而在for循环中,如果要表示递增,两种都可以。
扩展资料:
++属于C语言级别的单目/一元运算 3级:
++ unary-expression 前缀自增;
-- unary-expression 前缀自减;
unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 * , 正号+ ,负号- 位反~ 逻辑否。
sizeof unary-expression 求类型长度,对表达式求类型长度。
sizeof ( type-name ) 求类型长度。
1、i++式子值为i原来的值,就是通俗说的“先赋值再加1”;
2、而++i式子值为i变化后的值,也就是“先加1后赋值”。
而在for循环中,如果要表示递增,两种都可以。
扩展资料:
++属于C语言级别的单目/一元运算 3级:
++ unary-expression 前缀自增;
-- unary-expression 前缀自减;
unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 * , 正号+ ,负号- 位反~ 逻辑否。
sizeof unary-expression 求类型长度,对表达式求类型长度。
sizeof ( type-name ) 求类型长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i++是先对i操作,再对i执行+1;
++i是先运行+1,将值赋给i后,再对i操作;
比如:
int i=1;
int a=1+ i++; //运行过程是1+1,然后再将结果2赋给a,最后是i=i+1;
int a=1+ ++i; //运行过程是先运行i=i+1,得到2,然后运行1+i,并将结果1+i赋给a;
++i是先运行+1,将值赋给i后,再对i操作;
比如:
int i=1;
int a=1+ i++; //运行过程是1+1,然后再将结果2赋给a,最后是i=i+1;
int a=1+ ++i; //运行过程是先运行i=i+1,得到2,然后运行1+i,并将结果1+i赋给a;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面我们通过一些实例来深入理解自增运算符的特性,自减运算符同理自悟
例:
int i=3;
int j=4;
i++;
++j;
printf("%d, %d\n", i, j);
对此,Eric想大家都不会有什么困惑,结果就是 4,5;下面我们来做一点小改动:
int i=3;
int j=4;
int a = i++;
int b = ++j;
printf("%d, %d\n", a, b);
结果又是多少呢?这里就开始体现出++前置与后置的区别了,结果是3,5。结合此例,我们回头再来理解一下“++前置:i自增1后再参与其它运算;++后置:i参与运算后,i的值再自增1”。很明显,a = i++;由于是先执行赋值运算,再自增,所以结果是a=3,i=4;而b = ++j;
则因先自增,然后再赋值,所以b,j均为5。
例:
int i=3;
int j=4;
i++;
++j;
printf("%d, %d\n", i, j);
对此,Eric想大家都不会有什么困惑,结果就是 4,5;下面我们来做一点小改动:
int i=3;
int j=4;
int a = i++;
int b = ++j;
printf("%d, %d\n", a, b);
结果又是多少呢?这里就开始体现出++前置与后置的区别了,结果是3,5。结合此例,我们回头再来理解一下“++前置:i自增1后再参与其它运算;++后置:i参与运算后,i的值再自增1”。很明显,a = i++;由于是先执行赋值运算,再自增,所以结果是a=3,i=4;而b = ++j;
则因先自增,然后再赋值,所以b,j均为5。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-12-15 · 知道合伙人教育行家
关注
展开全部
对于变量i来说都会在原来基础上加1的,重点区别于式子本身的值;
i++式子值为i原来的值,就是通俗说的“先赋值再加1”;
而++i式子值为i变化后的值,也就是“先加1后赋值”;
这个赋值就是给式子赋值之意,按照语言习惯我们一般写i++,有时在循环中写++i也是一样的效果,因为对于变量i来说都实现自增1;
i++式子值为i原来的值,就是通俗说的“先赋值再加1”;
而++i式子值为i变化后的值,也就是“先加1后赋值”;
这个赋值就是给式子赋值之意,按照语言习惯我们一般写i++,有时在循环中写++i也是一样的效果,因为对于变量i来说都实现自增1;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询