C语言中a=1,a=a+++1,a+++1这两个有什么区别,前者值是3,后者是2
展开全部
事实证明。。如果a都等于1的情况下。都是2,
如果顺序执行,那么前面是2,后面是3
顺序大概是a=1+1,此时a被使用,所以a++此时a=2,但是1+1又给a赋值2,所以a=2;
++先执行是因为优先级大于=,作者题目都是错的,然而底下一堆在为了错的答案找解释,自己试试就知道了
如果顺序执行,那么前面是2,后面是3
顺序大概是a=1+1,此时a被使用,所以a++此时a=2,但是1+1又给a赋值2,所以a=2;
++先执行是因为优先级大于=,作者题目都是错的,然而底下一堆在为了错的答案找解释,自己试试就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=3时,
因为a++是变量a先参与其他运算再加1,所以(a++)+(a++)+(a++)实际上是3+3+3=9,运算后a的值是6.
++a则是先求a=a+1,然后再做其他运算,所以(++a)+(++a)+(++a)实际上是5+5+6=16,运算后a的值是6.
因为a++是变量a先参与其他运算再加1,所以(a++)+(a++)+(a++)实际上是3+3+3=9,运算后a的值是6.
++a则是先求a=a+1,然后再做其他运算,所以(++a)+(++a)+(++a)实际上是5+5+6=16,运算后a的值是6.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前者,a=a+++1被编译器解释为:
a=a+1;//a=1+1=2
a++;//a=2+1=3
后者,a+++1被编译器解释为:
a+1;//虽然做了1+1=2运算,但没有赋给a,a仍为1
a=a+1;//a=1+1=2
a=a+1;//a=1+1=2
a++;//a=2+1=3
后者,a+++1被编译器解释为:
a+1;//虽然做了1+1=2运算,但没有赋给a,a仍为1
a=a+1;//a=1+1=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询