1、赋值运算符的优先级小于 比较运算符的优先级
如下代码所示, 当函数func返回值大于0时,b = 1,条件成立,运行打印语句;当函数func返回值小于等于0时,b = 0,条件不成立,不会运行打印语句。
#include <stdio.h>
int func() {
int a = 4;
return a;
}
int main(int argc, char const *argv[])
{
int b;
if (b = func() > 0)
printf("%d", b);
return 0;
}
如果想要先赋值,然后比较大小,需要用括号将赋值语句括起来:
#include <stdio.h>
int func() {
int a = -1;
return a;
}
int main(int argc, char const *argv[])
{
int b;
if ((b = func()) > 0)
printf("%d", b);
return 0;
}
2、数组下标运算符[] 优先级最高