&: 在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。|: 是位运算符,表示“按位或”。
资料扩展
1、符号 &和 | 这两个运算符都是二进制的按位操作符。
&: 二进制“与”(都为1时,结果是1,否则是0。),比如:1010 &1011 = 1010,1010 &1000 = 1000。
|: 二进制“或”(有1时,结果是1,都是0时,结果为0。),比如:1010 | 1011 = 1011,1010 | 1000 = 1010。
2、位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。
例如:
表达式10&15表示(1010 &1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1。
表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。
3、C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。
4、位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
expr :表达式lvalue:左值得(书上是:标示非常量的表达式)type:类型class_name:类名member:成员名pointer:指针表达式—————————————————————————————————————————————————————————优先性级:1-----------------------------------------------------------------------------------------------------------------------------------名称:例子:作用域解析class_name::member作用域解析namespace_name::member全局 ::name全局 ::qualifide-name—————————————————————————————————————————————————————————优先性级:2-----------------------------------------------------------------------------------------------------------------------------------成员选择 object.member成员选择 pointer->member下标 pointer[expr]函数调用 expr(expr_list)值构造type(expr_list)后增量lvalue++后减量lvalue--类型识别 typeid(type)运行时类型识别typeid(expr)运行时检查的转换 dynamic_cast<type>(expr)编译时检查的转换 static_cast<type>(expr)不检查检查的转换 reinterpret_cast<type>(expr)const转换 const_cast<type>(expr)—————————————————————————————————————————————————————————优先性级:3-----------------------------------------------------------------------------------------------------------------------------------对象的大小sizeof expr类型的大小sizeof(type)前增量++lvalue后增量 - -lvalue补~expr非!expr一元负号-expr一元正号+expr地址 &lvalue间接 * expr建立(分配) new type建立(分配并初始化) new type(expr-list)建立(放置) new (expr-list)type建立(放置并初始化) new (expr-list)type(expr-list)销毁 delete pointer销毁数组 delete [] pointer强制 (type)expr—————————————————————————————————————————————————————————优先性级:4-----------------------------------------------------------------------------------------------------------------------------------成员选择 object .*pointer-to -member成员选择 object->*pointer-ro -member—————————————————————————————————————————————————————————优先性级:5-----------------------------------------------------------------------------------------------------------------------------------乘expr * expr除expr / expr取模(余数) expr % expr加(求和)expr + expr减expr - expr—————————————————————————————————————————————————————————优先性级:6-----------------------------------------------------------------------------------------------------------------------------------左移 expr<<expr右移 expr>>expr—————————————————————————————————————————————————————————优先性级:7-----------------------------------------------------------------------------------------------------------------------------------小于 expr<expr小于等于 expr<=expr大于 expr>expr大于等于 expr>=expr—————————————————————————————————————————————————————————优先性级:8-----------------------------------------------------------------------------------------------------------------------------------等于 expr ==expr不等于expr != expr—————————————————————————————————————————————————————————优先性级:9-----------------------------------------------------------------------------------------------------------------------------------按位“异或” expr ^ expr—————————————————————————————————————————————————————————优先性级:10-----------------------------------------------------------------------------------------------------------------------------------按位“与”expr &expr—————————————————————————————————————————————————————————优先性级:11-----------------------------------------------------------------------------------------------------------------------------------按位“或” expr | expr—————————————————————————————————————————————————————————优先性级:12-----------------------------------------------------------------------------------------------------------------------------------逻辑“与”expr &&expr—————————————————————————————————————————————————————————优先性级:13-----------------------------------------------------------------------------------------------------------------------------------逻辑“或”expr || expr—————————————————————————————————————————————————————————优先性级:14-----------------------------------------------------------------------------------------------------------------------------------条件表达式expr? expr :expr—————————————————————————————————————————————————————————优先性级:15-----------------------------------------------------------------------------------------------------------------------------------简单赋值 lvalue =expr乘并赋值 lvalue *= expr除并赋值 lvalue/= expr取模并赋值lvalue % =expr加并赋值 lvalue += expr减并赋值 lvalue-= expr左移并赋值lvalue<<= expr右移并赋值lvalue >>=expr与并赋值 lvalue &=expr或并赋值 lvalue |=expr异或并赋值lvalue ^=expr—————————————————————————————————————————————————————————优先性级:16-----------------------------------------------------------------------------------------------------------------------------------异常抛出 throw expr—————————————————————————————————————————————————————————优先性级:17-----------------------------------------------------------------------------------------------------------------------------------逗号(序列) expr,expr—————————————————————————————————————————————————————————