永发信息网

如果int i=3 则printf("%d",-i++)执行后输出是( )i的结果是 ( ) 答案是-3 4 求解释

答案:4  悬赏:10  手机版
解决时间 2021-02-12 22:46
  • 提问者网友:记得曾经
  • 2021-02-12 05:46
如果int i=3 则printf("%d",-i++)执行后输出是( )i的结果是 ( ) 答案是-3 4 求解释
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-02-12 06:19
首先来说 ++ 的优先级比 - 高 所以要先执行++ ++i 忽然i++ 的据别就是 ++i是 i自身先加1 然后在运算 i++ 就是先运算 然后i自身在加1 所以这道题可以理解成这样 -(i++) i++ =3 前面有 - 所以等式结果就是 -3 i的结果是4
全部回答
  • 1楼网友:逐風
  • 2021-02-12 09:46
根据结果,可以解释,有一种可能是,c语言在计算函数参数时是从右往左计算(这种可能在某些语言中确实存在,在tc或者vc的编译器下是否这样我就不清楚了),这样计算的话,就是先计算i++得到4,而且i++的加号在后面,所以代入函数参数的实际上就是自增之前的i,所以i++这个位置,就带入3,然后在计算前面一个参数i,这个时候i已经是4了,所以就是4,3 当然,也有可能存在其他情况,所以任何一个大公司,任何一个好老师都会给你说,尽量不要这样在函数参数里面对参数本身的取值进行修改
  • 2楼网友:怙棘
  • 2021-02-12 08:30
i++和++i的区别。都使自身加1,i++先赋值再自加,所以打印时是3,前面有个负号,我没这么写过,也不知道行不行。执行完这句话后i变成4.
  • 3楼网友:北城痞子
  • 2021-02-12 07:51
首先输出的就是 -i就是-3啦 可是这个-是不改变I的值的 它还是3 接着i自加 变成4
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯