怎么理解C语言单目数学运算符

来源:百度知道 编辑:UC知道 时间:2024/06/20 10:13:53
小弟最近自学C语言,因为数学不好,所以感觉特别难懂。其中一个单目数字运算符最难理解,书上说单目运算符有++、--,代表着递增和递减,这些我还能看懂,但是书上举了一个例子让我无语了。
例:
x = 10;
y = x++;
这两条语句被执行后,x的值为11,而y的值为10.首先将x的值赋予y,然后将x的值加1。而下面的语句被执行后,x和y的值都为11,即首先将x的值加1,然后将x的值赋予y;
x = 10;
y = ++x;

整个例子我看得一头雾水,是我理解的方式有问题还是例子不恰当呢,希望哪位老师能给我指点迷津

单目运算符++、--写在变量的前后有着不同的意义。
当写在前面时,表示立即对其后的变量的值进行更新,然后用更新的值做运算。
即:y=++x --> x = x + 1; y = x;
当写在后面时,表示用现在的值进行运算,运算完毕后再更新变量的值。
即:y=x++ --> y = x; x = x + 1;

你理解得很对呀!!!

y=x++表示先将x的当前值给y,然后将x的值增1

y=++x表示先将x的值增1,再把增1后的x的新值给y

学习要领:
(1)看++号在变量x的前面还是后面,

如果是在前面,如: y = ++x;
那么拆成
x = x + 1
y = x

如果是在后面,如: y= x++;
那么拆成
y = x
x = x + 1

(2) 总结:
1、你要知道 ++X 和 X++ 的优先级,++在前面最优先, ++在后面最不优先。
2、你要学会拆开来解决问题,比如上面,拆成两句理解就容易理解了。

++x是首先x自增1,y=++x,是x自增后,然后赋给y。
所以x = 10;
y = ++x x是11 y也是11

x++是先取表达式的值,就是x的值10,然后x再自增1
所以x = 10;
y = x++; x是11,y是10
++x和x++ 一个先自增 再赋值 另一个 先赋值 再自增