C语言自加自减问题

1、如果语句int i=3;k=(i++)+(i++)+(i++);执行过后k的值为 9 ,i的值为 6
2、如果i=3,则k=(i++)+(++i)+(i++)执行过后k的值为 12 ,i的值为 6
3、如果i=3,则k=(++i)+(++i)+(i++)执行过后k的值为 15 ,i的值为 6
4、如果i=3,则k=(++i)+(++i)+(++i)执行过后k的值为 18 ,i的值为 6
这四个 我不懂诶

计算:从右往左,并输出到“缓冲区”。

1、缓冲区是一堆栈

2、第一步:处理后面的“i--”。8进入缓冲区,i=7。缓冲区:8 <-(指针)

第二步:处理“i++”。7进入缓冲区,i=8。缓冲区:7 8<-

第三步:处理”--i“。8进入缓冲区,i=7.缓冲区:8 7 8

第四步:处理“++i”  先自增1,然后8进入缓冲区,i=8 .缓冲区: 8 8 7 8

3、输出缓冲区数据(栈规则):8 8 7 8

另外自增 、自减 、还可能和编译器有关系 。

扩展资料:

后缀表达式 2级

postfix-expression [ expression ],数组下标运算。

postfix-expression ( argument-expression-list),函数调用,括号内的参数可选。

postfix-expression . identifier,成员访问,

postfix-expression -> identifier,成员访问,->号之前应为指针。

postfix-expression ++,后缀自增

postfix-expression --,后缀自减

( type-name ) { initializer-list }

( type-name ) { initializer-list , } 复合初始化,C99后新增。

参考资料:百度百科-C语言运算符

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-19
因为执行abc1(a);后a=4,但是a属于外部变量,所以其值未变,仍是a=5。在;这个表达式中b=++a*--a,++a的值为6,--a
的值为5,因为++a和——a都在同一个表达式中,所以两个a
的值都为5,所以b=25。如果还不明白,你可以把程序改为b=++a*++a和b=--a*--a来帮助理解。
第2个回答  2020-07-20
i++是先使用i本身的值,用完后在加一,++i是先是i加以,然后再用这个值。
int
x=0;
printf("%d",x++);
输出的结果是0,但是输出语句结束后,在调试窗口中就可以看到i的值是1了。
int
x=0;
printf("%d",++x);
输出结果是1,调试窗口中显示的也是1。
懂?
第3个回答  推荐于2017-09-08
注意i++和++i的区别,i++是整个表达式执行完才进行自加,而++i是先自加再执行表达式。
1中全部是i++ 所以执行完表达式后i才自加3次,k=3+3+3=9,i=6
2中++i一次,所以执行表达式的时候i=4,所以k=12
3中++i二次,所以执行表达式的时候i=5,所以k=15
4中++i三次,所以执行表达式的时候i=6,所以k=18本回答被提问者采纳
第4个回答  2011-06-17
C语言中 自加的符号是:++ 自减的符号是:--
比如:int a;
a=1;
a++;
这里a就等于2,
a--;
这里a就等于0,
自加就是在原来的基础上加1 自减就是在原来的基础上减1

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网