非驰 发表于 2020-3-29 21:15:58

简单问题,为什么等于10

X不是要先++等于2吗,然后乘以12吗
int x=1, y=012;
printf("%d",y*x++);

qiuyouzhi 发表于 2020-3-29 21:21:41

1,你打印一下y,会发现y = 10
2,x++是先使用x,再++

zltzlt 发表于 2020-3-29 21:23:24

1. 012 是八进制的表示方法,八进制的 12 表示十进制中的 10

2. x++ 是先使用 x 再 ++

wd/ 发表于 2020-3-29 21:23:51

012是八进制的10,++是右结合性的,先算x*y,再使得x自增

非驰 发表于 2020-3-29 21:40:15

zltzlt 发表于 2020-3-29 21:23
1. 012 是八进制的表示方法,八进制的 12 表示十进制中的 10

2. x++ 是先使用 x 再 ++

那Y等于10,乘以X =1,得10,10再++不是应该是11吗

zltzlt 发表于 2020-3-29 21:40:59

非驰 发表于 2020-3-29 21:40
那Y等于10,乘以X =1,得10,10再++不是应该是11吗

只是对 x 进行 ++ 操作,对整个结果没有影响

非驰 发表于 2020-3-29 21:42:29

zltzlt 发表于 2020-3-29 21:40
只是对 x 进行 ++ 操作,对整个结果没有影响

好吧,刚学,还是不太明白,感谢
页: [1]
查看完整版本: 简单问题,为什么等于10