C语言中自加减的问题

发布时间:2024-05-22 14:49 发布:上海旅游网

问题描述:

void main()
{
int i=8;
printf("%d\n",++i);9
printf("%d\n",--i);8
printf("%d\n",i++);8
printf("%d\n",i--);9
printf("%d\n",-i++);-8
printf("%d\n",-i--);-9
}
请告诉我最后两行的结果为什么是-8和-9?

问题解答:

因为倒数第三行i输出为9,之后自减了1,变成了8,倒数第二行结果是先取负值-8输出再自减的,这时i的值是9,最后一行和上面差不多,先取负值-9输出再自加,最后i的值是8.够详细吧!

++,--在后 先使用 后自加(自减) 单目运算符的结合性为右结合性

printf("%d\n",-i++);-8 应该是-7,相当于(-8)+1,因为i=8
printf("%d\n",-i--);-9 相当于(-8)-1

-j++中-此处是负号运算符,优先级低于++。你知道前面的答案怎么来的,你就知道,后面的答案怎么来了

热点新闻