zzk5015377 发表于 2022-3-23 18:56:25

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

isdkz 发表于 2022-3-23 19:00:03

因为 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); }

月末 发表于 2022-3-23 19:02:21

i++是先用i的值计算再++,函数里的a=i++打印出的a是i

zzxhh628 发表于 2022-3-23 19:03:44

i++和++i的计算顺序不同,i++先赋值在递增,++i先递增再赋值。

超级无敌磊果果 发表于 2022-3-23 23:16:42

a=i++;
这一句 是先将i的值赋值给a,之后i再自加,所以a是3
解决方案:a=++i;
页: [1]
查看完整版本: c语言