c语言三目运算符中逻辑运算符是什么?

1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读运算符优先级_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&运算符优先级
在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象,但任何运算符两侧的数据对象必须具有相同的数据类型,否则运算将会出错;由于表达始终有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行相应运算,才能保证运算的合理性和结果的正确性、唯一性。打个比方,运算符优先级就像数学的算术,如果没有优先级,那人们在面对多个相同的算术运算符时,将不知所措,也就无法完成计算。优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的运算次序取决于表达式中各种运算符的优先级。优先级高的运算符先运算,优先级低的运算符后运算,同一行中的运算符的优先级相同。[1]运算次序表达式中各种运算符的优先级具有相同的优先级
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
所有的优先级中,只有三个优先级是从右至左的,它们是、、。其它的都是从左至右结合。
具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与相关,而-&及.是取结构成员。
其次是,所有的单目运算符具有相同的优先级。优先级
名称或含义
数组名[常量表达式]
(表达式)/函数名(形参表)
成员选择(对象)
对象.成员名
成员选择(指针)
对象指针-&成员名
负号运算符
单目运算符
强制类型转换
(数据类型)表达式
自增运算符
++变量名/变量名++
单目运算符
自减运算符
--变量名/变量名--
单目运算符
取值运算符
单目运算符
取地址运算符
单目运算符
逻辑非运算符
单目运算符
按位取反运算符
单目运算符
长度运算符
sizeof(表达式)
表达式/表达式
双目运算符
表达式*表达式
双目运算符
余数(取模)
整型表达式/整型表达式
双目运算符
表达式+表达式
双目运算符
表达式-表达式
双目运算符
变量&&表达式
双目运算符
变量&&表达式
双目运算符
表达式&表达式
双目运算符
表达式&=表达式
双目运算符
表达式&表达式
双目运算符
表达式&=表达式
双目运算符
表达式==表达式
双目运算符
表达式!= 表达式
双目运算符
表达式&表达式
双目运算符
表达式^表达式
双目运算符
表达式|表达式
双目运算符
表达式&&表达式
双目运算符
表达式||表达式
双目运算符
条件运算符
表达式1? 表达式2: 表达式3
三目运算符
赋值运算符
变量=表达式
变量/=表达式
变量*=表达式
取模后赋值
变量%=表达式
变量+=表达式
变量-=表达式
左移后赋值
变量&&=表达式
右移后赋值
变量&&=表达式
按位与后赋值
变量&=表达式
按位异或后赋值
变量^=表达式
按位或后赋值
变量|=表达式
逗号运算符
表达式,表达式,…
从左向右顺序运算
以下部分错误:
() [] -& . ++(后缀自增) --(后缀自减)
left to right
! ~ ++(前缀自增) --(前缀自减) + - * sizeof(type)
right to left
? : (条件运算)
right to left
= += -= *= /= %= &= ^= |= &&= &&=
 left to right
接下来是算术运算符,*、/、%的优先级当然比+、-高了。
紧随其后。
其次的关系运算符中,& &= & &=要比 == !=高一个级别,不大好理解。
所有的逻辑操作符都具有不同的优先级(除外,!和~)
逻辑位操作符的&与&比&或&高,而&异或&则在它们之间。
跟在其后的&&比||高。
接下来的是条件运算符,及逗号运算符。
在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及。
&&、| |都是先计算左边的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 && &&运算符的左边位为0,则右边b就不再判断。
在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。
赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。Operator
Description
Overloadable
Group 1(no associativity)
Scope resolution operator
Class::age = 2;
Function call
isdigit(&#39;1&#39;)
Member initalization
c_tor(int x, int y) : _x(x), _y(y*10){};
Array access
array[4] = 2;
Member access from a pointer
ptr-&age = 34;
Member access from an object
obj.age = 34;
Post-increment
for( int i = 0; i & 10; ++i ) cout &&
Post-decrement
for( int i = 10; i & 0; --i ) cout &&
const_cast
Special cast
const_cast&type_to&(type_from);
dynamic_cast
Special cast
dynamic_cast&type_to&(type_from);
static_cast
Special cast
static_cast&type_to&(type_from);
reinterpret_cast
Special cast
reinterpret_cast&type_to&(type_from);
Runtime type information
cout & typeid(var).name();
cout & typeid(type).name();
Group 3(right-to-left associativity)
Logical negation
if( !done ) …
Alternate spelling for !
Bitwise complement
Alternate spelling for ~
Pre-increment
for( i = 0; i & 10; i++ ) cout &&
Pre-decrement
for( i = 10; i & 0; i-- ) cout &&
Unary minus
int i = -1;
Unary plus
int i = +1;
Dereference
int data = *intP
Address of
int *intPtr = &
Dynamic memory allocation
long *pVar =
MyClass *ptr = new MyClass(args);
Dynamic memory allocation of array
long *array = new long[n];
Deallocating the memory
Deallocating the memory of array
Cast to a given type
int i = (int) floatN
Return size of an object or type
int size = sizeof floatN
int size = sizeof(float);
Member pointer selector
ptr-&*var = 24;
Member object selector
obj.*var = 24;
Multiplication
int i = 2 * 4;
float f = 10.0 / 3.0;
int rem = 4 % 3;
int i = 2 + 3;
Subtraction
int i = 5 - 1;
Bitwise shift left
int flags = 33 && 1;
Bitwise shift right
int flags = 33 && 1;
Comparison less-than
if( i & 42 ) …
Comparison less-than-or-equal-to
if( i &= 42 ) ...
Comparison greater-than
if( i & 42 ) …
Comparison greater-than-or-equal-to
if( i &= 42 ) ...
Comparison equal-to
if( i == 42 ) ...
Alternate spelling for ==
Comparison not-equal-to
if( i != 42 ) …
Alternate spelling for !=
  Group 10
Bitwise AND
flags = flags & 42;
Alternate spelling for &
  Group 11
Bitwise exclusive OR (XOR)
flags = flags ^ 42;
Alternate spelling for ^
  Group 12
Bitwise inclusive (normal) OR
flags = flags | 42;
Alternate spelling for |
  Group 13
Logical AND
if( conditionA && conditionB ) …
Alternate spelling for &&
  Group 14
Logical OR
if( conditionA || conditionB ) ...
Alternate spelling for ||
  Group 15(right-to-left associativity)
Ternary conditional (if-then-else)
int i = (a & b) ? a :
Group 16(right-to-left associativity)
Assignment operator
Increment and assign
Decrement and assign
Multiply and assign
Divide and assign
Modulo and assign
Bitwise AND and assign
flags &= new_
Alternate spelling for &=
Bitwise exclusive or (XOR) and assign
flags ^= new_
Alternate spelling for ^=
Bitwise normal OR and assign
flags |= new_
Alternate spelling for |=
Bitwise shift left and assign
flags &&= 2;
Bitwise shift right and assign
flags &&= 2;
   throw
throw exception
throw EClass(“Message”);
Sequential evaluation operator
for( i = 0, j = 0; i & 10; i++, j++ ) …
(x) x.y f(x) a[x] x++ x――new typeof sizeof checked unchecked
+ - ! ~ ++x ――x (T)x
乘法与除法
加法与减法
& & & = &=
位逻辑异或
= *= /= %= += -= &&= &&= &= ^= |=
新手上路我有疑问投诉建议参考资料 查看C语言逻辑运算符两侧运算对象的数据类型可以是什么_百度知道
C语言逻辑运算符两侧运算对象的数据类型可以是什么
语言逻辑运算符两侧运算对象的数据类型可以是什么A
只能是0或1B 只能是0或非0的正数C 不清只能是整型或字符型数据(我在书上看到过. 谁能说下选什么,貌似实数也允许的)D 可以是任何类型的数据 我在两本不同的书上都看到了这个题目,一本说是C,一本是D选项
bool值只有非0(用1表示)和0两个值,所以无论什么类型的值都可以参与运算D是正确答案。因为逻辑运算符两侧最终要转换成bool值运算,所以只要不是0,就被转换为1
其他类似问题
按默认排序
其他2条回答
该是D但准确的说是任何简单数据类型都是可以的,double,都可以用在逻辑运算中,C就是这几个基本的数据类型.char,long ,float ,unsigned,int
D其实这种问题,自己找台电脑编个程序不就解决了么?。。
逻辑运算符的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁if(1) a=3; 在c语言中 是什么意思?_百度知道
if(1) a=3; 在c语言中 是什么意思?
提问者采纳
的意思其实就是一句代码 a = 3。所以if(1)是恒为真的,在C语言里面非0为真,0为假。所以就相当于 a =3 。因为if语句判断
提问者评价
其他类似问题
c语言的相关知识
按默认排序
其他3条回答
无条件判断 就等于1=3
c, c++, java中0都是代表false,其它代表true,所以这个其实就是if(true) a =3;
3)。逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。
当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如:
因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1。例如:
看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加1或者减1,但是当把他们作为其他表达式的一部分,两者就有区别了。运算符放在变量前面,那么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是在变量参加表达式的运算后再运算。这样讲可能不太清楚,看下面的例子:
a =++num1;这总的来看是一个赋值,把++num1的值赋给a,因为自增运算符在变量的前面,所以num1先自增加1变为5,然后赋值给a,最终a也为5。b=num2++;这是把num2++的值赋给b,因为自增运算符在变量的后面,所以先把num2赋值给b,b应该为8,然后num2自增加1变为 9。
那么如果出现这样的情况我们怎么处理呢?
c=num1+++num2;
到底是c=(num1++)+num2;还是c=num1+(++num2);这要根据编译器来决定,不同的编译器可能有不同的结果。所以我们在以后的编程当中,应该尽量避免出现上面复杂的情况。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言中逻辑运算符及其翻译_百度作业帮
C语言中逻辑运算符及其翻译
不仅是C语言其他语言也有很多逻辑控制语句常用的有1、if else
1-1、if() {} else{}2、do while
2-1、do{} while()
2-2、先执行do里面的方法或者语句,之后在判断3、switch case
3-1、switch case比较常用
3-2、switch() case 1:
4-1、这个就很简单了when来判断true false之后执行when里面的 内容5、for(int i = 0; i < 10; i ++){}
5-1、for循环多次循环判断6、嵌套递归
6-1、就是方法调用方法而已,直到执行到最后一条为止7、a>b? true:false
7-1、三目运算符,这个能让代码干净,但是也很浪费计算时间}

我要回帖

更多关于 c语言逻辑运算符 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信