|-莪:詪緈諨 发表于 2014-6-10 16:51:53

C语言自增运算符的问题

C语言教学视频里有道实例一直没想明白,如下:
int i=5,p;
p=(++i)+(++i)+(++i);
printf("%d\n",p);
编译器显示结果为22,为什么?

我来了_99 发表于 2014-6-10 17:08:03

编译器的问题,换个编译器试试,没有多大意义,也就考试时候用用。{:1_1:}

蚯蚓翔龙 发表于 2014-6-10 17:41:14

这是vc6的习惯,它把前面的(++i)+(++i)先算了再一起加上(++i)最后得出结果22,可以从反汇编看出,小甲鱼也曾经说过

张志强 发表于 2014-6-10 18:49:29

上面的表达式属于未定义形式,它的值根据编译器的不同而不同
页: [1]
查看完整版本: C语言自增运算符的问题