A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 火焱w 中级黑马   /  2014-12-16 12:35  /  1587 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位大家好,我现在在自学C语言,遇到一个问题不明白请大家帮帮忙?
就是C语言里面的++自增,--自减

例如;
int  x=0,y=0
y=x++
printf("y=%d,x=%d",y,x)
输出结果:
y=0,x=1
按照书上写的x++的意思是x=x+1
那么x++应该是1,y=x++的值应该也是1,但是结果为什么是0,希望大家指点迷津。非常感谢。

15 个回复

倒序浏览
x=0,y=0;之后执行x++,这个时候,表达式(x++)=0,变量x=1,把x++赋值给y,y自然等于0,
记住口诀:“X++是先用再加,++X是先加后用”,不知道我说的你明白不明白??如果你明白了,把这题的y=x++,变成y=++x,你再做出答案来……
回复 使用道具 举报 1 0
各位大家好- -你可以把i++理解为
{
    int m = i;
    i = i + 1;
    return m;
}
回复 使用道具 举报
se7ven 发表于 2014-12-16 12:59
x=0,y=0;之后执行x++,这个时候,表达式(x++)=0,变量x=1,把x++赋值给y,y自然等于0,
记住口诀:“X++ ...

我看了你的回答,现在终于明白了,非常感谢
y=++x的值是1
x++是先赋值再自增,++x 是先自增再赋值
回复 使用道具 举报
火焱w 发表于 2014-12-16 14:33
我看了你的回答,现在终于明白了,非常感谢
y=++x的值是1
x++是先赋值再自增,++x 是先自增再赋值 ...

哈哈,,,perfect,
回复 使用道具 举报
从今以后 发表于 2014-12-16 13:54
各位大家好- -你可以把i++理解为
{
    int m = i;

明白了,感谢回答。:handshake
回复 使用道具 举报
哪有那么复杂,那遇到更复杂的运算不是要想半天,y=x++,为什么要把++和y联系起来呢,++只跟x有关,++在前面就是x++先运算再赋值给y,++在后面就是先赋值,再x++,完全是2个运算,把它看成分别独立的就可以了,其实本来就是独立的,我个人觉得这样理解才是最透彻的,什么:“X++是先用再加,++X是先加后用,等过段时间或者复杂的运算把自己都给绕进去来了
回复 使用道具 举报
先加和后加
回复 使用道具 举报
浅听 中级黑马 2014-12-17 00:07:30
9#
有些简单的问题想复杂了就会把自己绕进去的
回复 使用道具 举报
再看一遍视频
回复 使用道具 举报
x++是先赋值再自增,++x 是先自增再赋值~!
回复 使用道具 举报
y=x++,y是x原来的值,也就是0;x++后x的值+1,x=1。
回复 使用道具 举报
y=x++和y=++x,其实很简单的,没你想的那么难,你只要记住y=x++是y=x;x=x+1,而y=++x是x=x+1,y=x;就明白了,分开步骤来理解,一下就知道了
回复 使用道具 举报
xiezhongmin 发表于 2014-12-16 23:53
哪有那么复杂,那遇到更复杂的运算不是要想半天,y=x++,为什么要把++和y联系起来呢,++只跟x有关,++在前面 ...

看了你的回答,感觉理解更透彻一点了,以前可能就是把++老是和y联系到一起了,现在明白了。非常感谢。
回复 使用道具 举报
邹志鹏 发表于 2014-12-17 10:55
x++是先赋值再自增,++x 是先自增再赋值~!

谢谢大家的回答,已经明白了。
回复 使用道具 举报
zlmg 中级黑马 2014-12-17 12:50:29
16#
以前我学习c语言的时候也搞不清什么先加后加
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马