关于‘,’运算符与自加的问题
请教:# include <stdio.h>
int main(void)
{
int a,b;
a = (b=2, ++b, b+5);
printf("The value of a is:%d\n", a);
}
这段程序输出的结果是 8
# include <stdio.h>
int main(void)
{
int a,b;
a = (b=2, b++, b+5);
printf("The value of a is:%d\n", a);
}
但是为什么这段程序输出的也是8
第一段程序是因为在a = (b=2, ++b, b+5)内执行了 ++b,先把b的值加1在引用,所以结果为8;但是第二段程序中a = (b=2, b++, b+5) 不是先引用b的值吗,引用完后就应该是 2+5=7了啊???????? 后置++不等于执行完一条语句后最后自增
而是下一个需要要到自身之前就必须完成
你第三个b+5用到了b,所以已经完成自增操作了 BngThea 发表于 2018-3-19 08:58
后置++不等于执行完一条语句后最后自增
而是下一个需要要到自身之前就必须完成
你第三个b+5用到了b,所以 ...
您好我还是不明白,不能理解您说的话
我是不是可以这样理解您说的话:
这里的先引用b的值是先引用的前面的b=2,然后还要执行++的操作,才可以执行后面的b+5 平淡最真 发表于 2018-3-19 09:25
您好我还是不明白,不能理解您说的话
我是不是可以这样理解您说的话:
我是说执行过程如下:
b=2;
b+=1;
a = b+5
BngThea 发表于 2018-3-19 09:50
我是说执行过程如下:
b=2;
b+=1;
谢谢您麻烦了{:5_109:} ba21 发表于 2018-3-19 11:10
很详细辛苦您了 谢谢{:5_109:}
页:
[1]