C语言中i++和i--对正负有要求么

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:07:43
如题
mian()
{int i=8
printf("%d\n",++i); /*1:输出结果8(++i)i自增1后结果为8*/
printf("%d\n",--i); /*2:输出结果7*(--i)i先减1后结果为7*/
printf("%d\n",i++); /*3:输出结果8*(i++)7然后自增1后结果为8*/
printf("%d\n",i--); /*4:输出结果7*(i--)8然后i自减1后结果7*/
printf("%d\n",-i++); /*5:输出结果8*(-i++)-7然后自增加1结果为8*/
printf("%d\n",-i--); /*6:输出结果7(-i--)求值结果-8然后i自减1结果7*/
i++i--求值是从右到左 就是从下向上?是不是每个结果就串连的
我们可以从6中看出来-8-1=7是不是负负得正啊 可为什么是7呢 为什么不是-9
5也是如果“-i++”-7自增1后为8 -7+1=8为什么啊 于正负无关
麻烦各位高手教教小弟 最好详细点
忘了加最后}

您好 和正负没有关系,“-i++”就是等于-8
我在vc测试过了 没有问题

您的main打错了
还有int句没有打分号

mian()
{int i=8
printf("%d\n",++i); /*1:输出结果9(++i)i自增1后结果为9*/

printf("%d\n",--i); /*2:输出结果8*(--i)i先减1后结果为8*/
printf("%d\n",i++); /*3:输出结果8*(i++)7然后自增1后结果为9*/
printf("%d\n",i--); /*4:输出结果9*(i--)8然后i自减1后结果8*/
printf("%d\n",-i++); /*5:输出结果-8*(-i++)然后自增加1结果为9*/
printf("%d\n",-i--); /*6:输出结果-9(-i--)求值结果然后i自减1结果8*/
}

-i++这里要注意符号的优先级
先执行的是++
然后再是-