c语言中和的优先级
‘壹’ c语言运算符优先级顺序表
第1优先级:各种括号,如()、[]等、成员运算符 . ;
第2优先级:所有单目运算符,如++、–、!、~等;
第3优先级:乘法运算符*、除法运算符/、求余运算符%;
第4优先级:加法运算符+、减法运算符-;
第5优先级:移位运算符<<、>>;
第6优先级:大于运算符>、大于等于运算符>=、小于运<、小于等于运算符<=;
第7优先级:等于运算符==、不等于运算符!=;
第8优先级:按位与运算符&;
第9优先级:按位异或运算符^;
第10优先级:按位或运算符|;
第11优先级:逻辑与运算符&&;
第12优先级:逻辑或运算符||;
第13优先级:三目条件运算符 ?: ;
第14优先级:各种赋值运算符,如=、+=、-=、*=、/= 等;
第15优先级:逗号运算, 。
‘贰’ c语言中与或的优先级
经过n遍的调试,证明:1、||和&&优先级相等,且都是从左往右运算2、在出现||和&&的语句中,并不对a++进行运算,只判断它的初值。当然,这条语句结束后,涉及判断的表达式就会进行相应的运算(如:a++)。3、在&&运算中,如果&&前面的逻辑值为0(如:令a=0;
a++&&b++,此时,a还没有进行++运算,仍为0。但是在本语句结束后就自加1),则结束本语句;如果&&前面的逻辑值为1(如:上面的情况令a=1),则继续判断&&后面的值是否为1,如果为1,则继续判断后面的逻辑运算;如果为0,而结束本语句。4、在||运算中,如果||前的逻辑值为1,则结束本语句如果||前的逻辑值为0,则继续判断,若||后的逻辑值为1(如:a||b++,
其中b=1),则结束本语句,否则继续往后判断举个实际的例子:#include<stdio.h>
void
main()
{
int
a,b,c,d;
a=0;
b=0;
c=1;
d=a++||b++&&c++;
/*运算过程是:第一步,判断a
的逻辑值是否为0,可知为0,因此继续往后判断(因为a++这个表达式参与了判断,所以在这条语句结束后,a会变成1);第二步,判断b,可知b的逻辑值0,所以a||b==0,因为之后遇到的是&&运算,而又有&&前的逻辑值为0,直接结束本语句,因此C++并没有参与判断,保持值不变(当然,b有参加判断,结束本语句后,b为1);第三步,由于0&&c++==0,所以d=0*/
printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
}运行结果:a=1b=1c=1d=0
‘叁’ 计算机C语言中逻辑运算符“与”“或”“非”优先级是怎样的
非的优先级最高(它是一个单目操作符)
与的优先级次之
或的优先级最低
单目操作符的优先级最高。
‘肆’ C语言的运算符的优先级是什么
1、最高级:出现同级别运算符时的结合方向是从左往右(下面级别没写结合顺序时,默认是从左往右)。
( )圆括号
[ ]下标运算符号
->指向结构体成员运算符
.结构体成员运算符
‘伍’ c语言中“与”和“或”的优先级是什么
与>或 ,更细一点是:! ---> & ---> ^ ---> | ---> && ---> ||。C语言中的运算优先级和算数优先级一样,只要把运算符的优先级记住就可以了。
经过n遍的调试,证明:||和&&优先级相等,且都是从左往右运算;在出现||和&&的语句中,并不对a++进行运算,只判断它的初值。当然,这条语句结束后,涉及判断的表达式就会进行相应的运算(如:a++)。
在&&运算中,如果&&前面的逻辑值为0(如:令a=0;a++&&b++,此时,a还没有进行++运算,仍为0。但是在本语句结束后就自加1),则结束本语句;如果&&前面的逻辑值为1,则继续判断&&后面的值是否为1,如果为1,则继续判断后面的逻辑运算;如果为0,而结束本语句。
优先级
优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先算术运算,后移位运算,最后位运算。请特别注意:1逻辑运算最后结合。
以上内容参考:网络-运算符优先级