如果你的程序顺序是:
x=5+3;
y=x*5;
z=++y;
那是按顺序执行.
运算符优先级由高到低为:
Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━
表达式 ┃优先级
————————————————————————————╂————
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃ 最高
————————————————————————————┃ ↑
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃ │
————————————————————————————┃ │
*(指针所指内容) type(函数说明) sizeof(长度计算) ┃ │
————————————————————————————┃ │
*(乘) /(除) %(取模) ┃ │
————————————————————————————┃ │
+(加) -(减) ┃ │
————————————————————————————┃ │
<<(位左移) >>(位右移) ┃ │
————————————————————————————┃ │
<(小于) <=(小于等于) >(大于) >=(大于等于) ┃ │
————————————————————————————┃ │
==(等于) !=(不等于) ┃ │
————————————————————————————┃ │
&(位与) ┃ │
————————————————————————————┃ │
^(位异或) ┃ │
————————————————————————————┃ │
|(位或) ┃ │
————————————————————————————┃ │
&&(逻辑与) ┃ │
————————————————————————————┃ │
||(逻辑或) ┃ │
————————————————————————————┃ │
?:(?表达式) ┃ │
————————————————————————————┃ │
= += -=(联合操作) ┃ │
————————————————————————————┃ │
,(逗号运算符) ┃ 最低
如果你是分成几条语句写的话,是按顺序走的。c到底是面向过程的语言。
如果是同一个语句里的,比如
x=5*3+4+(++y);
这样的语句,则先计算优先级高的部分。比如上面的语句,首先y自加,接着计算5*3,接着计算两个加法。
一般的c语言教程上都会有运算符的优先级排序。实在拿不准的话就套括号吧。
如果不是在同一条语句里面,当然是先执行前面的,再执行后面的
也就是说这里是先x=5+3=8,再y=x*5=40,最后z=++y,++比=优先级高,所以先++y也就是y=41,然后再=,z=41
要明白一点
程序是一行一行向下执行的(以分号表示一行),到目前为止我仍只看到这一种方式
运算符优先级体现在每一条语句中
如果你正在学习C语言,建议你问这个问题之前先看看教材,优先级问题是每本初等教材中都有的,记住常用的一些