i++ 和++i的区别
main(){inti=5,j=5,p,q;p=(i++)+(i++)+(i++);q=(++j)+(++j)+(++j);printf("%d,%d,%d,%d",p,...
main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
我觉的q等于18 大家怎么看 展开
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
我觉的q等于18 大家怎么看 展开
13个回答
展开全部
楼上的你可以运行一下,q答案是22,不是24
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
共同点:
1、i++和++i都是变量自增1,都等价于i=i+1
2、如果i++,++i是一条单独的语句,两者没有任何区别
3、i++和++i的使用仅仅针对变量。 5++和++5会报错,因为5不是变量。
不同点:
如果i++,++i不是一条单独的语句,他们就有区别i++ :先运算后增1。如:
- int x=5;
- int y=x++;
- System.out.println("x="+x+", y="+y);
- //以上代码运行后输出结果为:x=6, y=5
++i : 先增1后运算。如:
- int x=5;
- int y=++x;
- System.out.println("x="+x+", y="+y);
- //以上代码运行后输出结果为:x=6, y=6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
共同点:
1、i++和++i都是变量自增1,都等价于i=i+1
2、如果i++,++i是一条单独的语句,两者没有任何区别
3、i++和++i的使用仅仅针对变量。 5++和++5会报错,因为5不是变量。
不同点:
如果i++,++i不是一条单独的语句,他们就有区别i++ :先运算后增1。如:int x=5;
- int y=x++;
- System.out.println("x="+x+", y="+y);
- //以上代码运行后输出结果为:x=6, y=5
++i : 先增1后运算。
如:
- int x=5;
- int y=++x;
- System.out.println("x="+x+", y="+y);
- //以上代码运行后输出结果为:x=6, y=6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询