我是c的初学者,我发现很难理解我在下面给出我的代码的帖子和预增量,我已经在turbo c ++编译器中编译了它并且输出为 a = 6和b = 10 但是从那以后使用后增量运算符输出应该是a = 6和b = 11,为什么不发生?有人可以解释它..
#includeint main() { int a=5,b; b = a++ + a; printf("\na = %d and b = %d",a,b); return 0; }
Bathsheba.. 6
C中的行为a++ + a;
是未定义的.这是因为+
它不是一个排序点,而您实际上是在尝试增加和读取a
同一个表达式.
所以你不能保证一个特定的答案.
为了理解前缀和后缀增量,请使用b = a++;
和等语句b = ++a;
C中的行为a++ + a;
是未定义的.这是因为+
它不是一个排序点,而您实际上是在尝试增加和读取a
同一个表达式.
所以你不能保证一个特定的答案.
为了理解前缀和后缀增量,请使用b = a++;
和等语句b = ++a;