c语言
fun(int i) { int a=2; a=i++; printf("%d ",a); } main() { int a=5,c=3; fun(c); printf("%d",a); }为什么打印出来是 3 5而不是4 5 因为 i++ 是先使用再自增,
这样就是 4 5
fun(int i) { int a=2; a=++i; printf("%d ",a); } main() { int a=5,c=3; fun(c); printf("%d",a); } i++是先用i的值计算再++,函数里的a=i++打印出的a是i i++和++i的计算顺序不同,i++先赋值在递增,++i先递增再赋值。 a=i++;
这一句 是先将i的值赋值给a,之后i再自加,所以a是3
解决方案:a=++i;
页:
[1]