作业帮 > 综合 > 作业

关于C语言的一个问题 int a=2 k=(++a)+(++a)+(++a) 编译后答案是13 可是为什么我算出来是12

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/27 21:34:35
关于C语言的一个问题 int a=2 k=(++a)+(++a)+(++a) 编译后答案是13 可是为什么我算出来是12
rt 从开始学c这个就一直没弄明白一直到现在 还有
这个答案,在不同的编译器上结果可能不同
因为,编译器有可能时两个两个算加法,也有可能时同意算完之后再加
即 4 + 4 + 5
或者 5 + 5 +5 所以,结果只能时13 或者15,不可能时12
再问: 不是第一个 a=3 第二个a=4 然后第3个a=5么
再答: 不是,我这么给你说吧 编译器可能时两两相加 所以,先算 a = 3, 然后在算a = 4; 这时, 第一个的a也变成4了,所以时4 + 4 + 5 如果统一算出来,那就是 5 + 5 +5