int main()
{
int i=3,j,k;
j=i++;
k=++i;
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
结果:i=5,j=3,k=5
我很奇怪,为什么不是 i=3,j=4,k=4呢?能具体的解释一下么?把计算过程描述出来……
j=i++ 那不就是 j=i+1么?为什么 I=5?

代码: 全选
好东西>> http://yisnet.com/go/
- -!我是看书的亚soiamso 写了:多看看谭浩强教授的书
代码: 全选
好东西>> http://yisnet.com/go/
个人非常不建议看谭浩强的书多看看谭浩强教授的书
写错别字,是个态度问题i++现使用i,再把i的值加1
i-- 先使用i,再把i的值减1
++i 先把i的值加1,在使用i
--i先把i的值减1,再使用i
书上的定义十分明确jiefey 写了:- -!我是看书的亚soiamso 写了:多看看谭浩强教授的书
书上说
i++现使用i,再把i的值加1
i-- 先使用i,再把i的值减1
++i 先把i的值加1,在使用i
--i先把i的值减1,再使用i
代码: 全选
好东西>> http://yisnet.com/go/
首先:"j=i++",就是i加1但是输出的是3,则j=3,然后:"k=++i":i再加1,但是输出的5,则i=k=5jiefey 写了:#include<stdio.h>
int main()
{
int i=3,j,k;
j=i++;
k=++i;
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
结果:i=5,j=3,k=5
我很奇怪,为什么不是 i=3,j=4,k=4呢?能具体的解释一下么?把计算过程描述出来……
j=i++ 那不就是 j=i+1么?为什么 I=5?
代码: 全选
好东西>> http://yisnet.com/go/