c语言中的自加出现了错误

发布时间:2024-05-10 06:38 发布:上海旅游网

问题描述:

程序
#include<stdio.h>
void main()
{
int n=5;

printf("%d%d%d \n",n,++n,n--);
} 结果在vc++中是6 6 5 为什么不是5 6 5
tc中是555
但是在c++中不是
还有改为++n,n--,n时是665还符合书上的右结合性啊!不知道怎么搞的?,在c++中应是565,按右结合性
回答时各位运行一下,不要纸上谈兵

问题解答:

++n n-- 优先级不同,printf("%d%d%d \n",n,++n,n--);
自右向左结合, 不是先求n-- ,而是先++n 等于6 ,再求n-- ,显示n 后(这里n还是6)再执行 --, n=5; 最后还有左边那个n ,也是5.

呵呵``看这个样子是从后面开始运算的啊以前还真没有研究过

二楼不对啊,printf在输出时是从后向前输出的..
所以先n--,输出n=5并且之后n=4,然后++n,输出5并且之后n=5,最后输出n=5..
楼主,你的结果也错了吧,应该是555啊.
你在运行下试试

PS:没学过VC啊,我们学完C就学JAVA.

printf()
这个函数是要从所输出的数是要自右向左算的
这在书上的一个角落里有看到过

热点新闻