main()
{
int i=8;
printf(“%d\n”,++i);
printf(“%d\n”,--i);
printf(“%d\n”, i++);
printf(“%d\n”,i--);
printf(“%d\n”,- i++);
printf(“%d\n”,-i--);
}
运行结果为:
9
8
8
9
-8
-9
最后两个,能讲解下么?
main()
{
int i=8;
printf(“%d\n”,++i);
printf(“%d\n”,--i);
printf(“%d\n”, i++);
printf(“%d\n”,i--);
printf(“%d\n”,- i++);
printf(“%d\n”,-i--);
}
运行结果为:
9
8
8
9
-8
-9
最后两个,能讲解下么?
main()
{
int i=8;
printf(“%d\n”,++i); //++i就是将i取出+1再显示,此时i=9
printf(“%d\n”,--i); //--i一样先-1再显示,此时i=8;
printf(“%d\n”, i++);//i++先显示i的值(i=8),再操作i-1,i的值改变为9
printf(“%d\n”,i--);//先显示i=9;再操作i -1,i=8
printf(“%d\n”,- i++);//-号就是取负的操作,和i有关的,显示-8后,i+1=9;
printf(“%d\n”,-i--);//取负-i=-9,然后执行i--
}
负号运算符(-)和自增(++)、自减(--)运算符都属于一元运算符,
在C语言中一元运算符的结合方向是:右结合,也就是同一级运算符,从右向左结合。
所以题目中“-i--”可以看成“-(i--)”,结果自然是-8,下面一个语句同理。
参考资料:C语言符号优先级
http://wenku.baidu.com/view/044cc58a6529647d27285242.html
希望对你有帮助 O(∩_∩)O~