C++操作符总结

来源:互联网 发布:spring源码解读视频 编辑:程序博客网 时间:2024/05/16 07:33
  • 箭头操作符
    点操作符用于获取类类型对象的成员:
    Sales_item item1;
    item1.same_isbn(item2);
    若是有一个指向item1对象的指针:
    Sales_item *sp=&item1;
    则必须要先解引用,才能使用点操作符:
    (*sp).same_isbn(item2);
    并且括号是不能省略的,因为解引用的优先级要大于点操作。
    由于编程很容易忘记括号,而这类代码要经常使用,所以C++为在点操作符后使用的解引用操作定义了一个同义词:箭头操作符(->):
    sp->same_isbn(item2);//等价于(*sp).same_isbn(item2);
  • sizeof
    语法形式:
    sizeof(type name);
    sizeof(expr);
    sizeof expr;
    将sizeof用于expr时,并没有计算表达式的值,故sizeof *p中,p可指向无效地址,因为p不需被解析。
    对char 类型或值为char类型的表达式做sizeof操作,得1
    对引用类型做sizeof操作将返回存放引用类型的所需空间大小
    对指针做sizeof操作将返回存放指针所需内存大小,如果要获取该指针所指向的对象大小,则必须解引用。
    对数组做sizeof操作等效于将对其元素类型做sizeof操作的结果乘上元素个数。因为sizeof返回整个数组在内存中的存储长度,所以用sizeof数组的结果除以sizeof其元素类型为数组元素个数。int sz=sizeof(ia)/sizeof(*ia);

     

  • 操作符优先级及结合顺序
    操作符结合顺序功能用法::
    ::
    ::
    全局作用域
    类作用域
    名字空间作用域
    ::name
    class::name
    namespace::name
    .
    ->
    []
    ()
    ()

    成员选择
    成员选择
    下标
    函数调用
    类型构造
    object.member
    pointer->member
    variable[expr]
    name(expr)
    type(expr_list)
    ++
    --
    typeid
    typeid
    显示类型转换

    后自增
    后自减
    类型ID
    运行时类型ID
    类型转换
    lvalue++
    lvalue--
    typeid(type)
    typeid(expr)
    cast_name<type>(expr)

     

    sizeof
    sizeof
    ++
    --
    ~
    !
    -
    +
    *
    &
    ()
    new
    delete
    delete []



    对象大小
    类型大小
    前自增
    前自减
    位求反
    逻辑非
    一元负号
    一元正号
    解引用
    取地址
    类型转换
    创建对象
    释放对象
    释放数组

    sizeof expr
    sizeof(type)
    ++lvalue
    --lvalue
    ~expr
    !expr
    -expr
    +expr
    &expr
    (type)expr
    new type
    delete expr
    delete [] expr
    ->*
    .*

    指向成员操作的指针
    指向成员操作的指针
    ptr->*ptr_to_member
    obj.*ptr_to_member
    *
    /
    %


    求模
    expr*expr
    expr/expr
    expr%expr
    +
    _



    expr+expr
    expr-expr
    <<
    >>

    位左移
    位右移
    expr<<expr
    expr>>expr
    <
    <=
    >
    >=

    小于
    小于等于
    大于
    大于等于
    expr<expr
    expr<=expr
    expr>expr
    expr>=expr
    ==
    !=

    相等
    不相等
    expr==expr
    expr!=expr
    &位与expr&expr^位异或
    expr^expr位或expr|expr
    &&
    逻辑与
    expr&&expr
    ||
    逻辑或
    expr||expr
    ?:
    条作操作
    expr?expr:expr
    =
    *=,/=,%=,+=,-=,<<=,
    >>=,&=,|=,^=

    赋值操作
    复合赋值操作
    lvalue=expr
    lvalue+=expr 等等
    throw
    抛出异常throw expr
    ,逗号expr,expr

  • 原创粉丝点击