发了offer可以不去吗:C的一个小问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 16:18:00
#include<stdio.h>
void main()
{
int i,j,m,n;
i = 8;
j = 10;
m = ++i;
n = j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
这题中j为什么答案为11?而不是10?请详细解释!

m=++i 的作用是先使i自加1以后再赋值给m,n=j++的作用是先把j的值赋给n,然后再自加1,所以i的值最后为9,m的也是9,而n的值是j的初值为10,最后的j是自加后的值,即11.(建议你仔细看下关于C 的书,然后了解C中自加和自减的相关运算,因为开始在这里经常会出现问题)

这么简单了
n=j++;就是先赋值给n,n=10,然后j自增j的值 就是11