c语音的小问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 05:53:31
int m=3,x
x=m++;
老师说m是先用,后加。所以先把m值给x。
但现在又讲运算符的优先级的时候,++ 在=之前 ++的优先级高于=
那我是不是要先做++啊?
咋理解啊,它们前后矛盾吗?

++优先级高于=
但是执行++并不是简单的给它+1

要看++位置在变量前还是后
++在前的话那就直接加+1
在后的话 那么整条语句执行完再+1

x=m++是一种缩写形式等同于{x=m;m++}
还有一种x=++m;是{m++;x=m}

这样理解更好一点:
m++先运算,但是“m++”表达式的值是m没有加之前的值。只是m的值已经变化了而已。也就是说在把m++表达式的值赋给x之前m已经变了,但是这个表达式的值等于m没有变之前的值。

赋值运算有做结合性,算术运算有右结合性。