c语言中自增自减运算符的运算次序?
#include<stdio.h>main(){inta=5,b=5,c,d;a=a++;b=++b;printf("a=%d,b=%d\n",a,b);c=a++;d=...
#include<stdio.h>
main()
{int a=5,b=5,c,d;
a=a++;
b=++b;
printf("a=%d,b=%d\n",a,b);
c=a++;
d=++b;
printf("c=%d,d=%d\n",c,d);
}
运行结果:
a=5,b=6
c=5,d=7
为什么a和c不是6? 展开
main()
{int a=5,b=5,c,d;
a=a++;
b=++b;
printf("a=%d,b=%d\n",a,b);
c=a++;
d=++b;
printf("c=%d,d=%d\n",c,d);
}
运行结果:
a=5,b=6
c=5,d=7
为什么a和c不是6? 展开
3个回答
展开全部
追问
#include
main()
{int x=3,y=5;
printf("%d,%d\n",(x--,--y),x++);
}
结果:4,3
#include
main()
{int a=3;
printf("%d,%d\n",a,(a-=a*a));
}
结果:-6,-6
如何解释以上两个程序?
展开全部
后置递增递减运算符,将操作数递增或递减1,再将操作数的原值返回,也就是说有一个临时变量用来存放原来的值,在完成递增或递减操作后,将临时变量返回。
前置和后置区别就在这,前置返回的是新值,后置返回的是旧值。
前置和后置区别就在这,前置返回的是新值,后置返回的是旧值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i++是先使用i的值,再对i进行加1操作.
所以在p=(i++)+(i++)+(i++)里面在计算p的值之前,i本身的值总是5.
所以p的值就是3个5所以是15.在运算完p之后,因为有3个i++,所以i做了3次自加运算,所以i最终是8.
q的变化同理.
所以最终打印结果是 15,15,8,8
所以在p=(i++)+(i++)+(i++)里面在计算p的值之前,i本身的值总是5.
所以p的值就是3个5所以是15.在运算完p之后,因为有3个i++,所以i做了3次自加运算,所以i最终是8.
q的变化同理.
所以最终打印结果是 15,15,8,8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询