zoukankan      html  css  js  c++  java
  • C++ Primer chap4

    1 关于取余

    3.14 % 3; // 编译时刻错误: 浮点操作数 

    21 % 6; // ok: 结果是 3 

    21 % 7; // ok: 结果是 0 

    21 % -5; // 机器相关: 结果为 -1 或 1 

    2    static_cast<int> ( byte_value ) 

    称为显式类型转换 (explicit type conversion ) 或强制类型转换 (cast), 强制转换使编译 

    器把一个对象 或表达式 从它当前的类型转换成程序员指定的类型 在这种情况下, 我们把byte_value 转换成一个int 型的对象。

    3 C++支持C格式的位操作,也提供了专门进行位操作的类bitset;  bitset< 32 > bitvec2(  0xffff ); 创建一个前16位为1的32位位变量。

    必须包含头文件<bitset>。

    4 加减乘除的优先级比按位左移和右移及按位与,或,非的优先级高,只是比按位非的优先级低。因为按位非是单目运算符。

    5  long 类型的一般转换有一个例外 如果一个操作数是long 型 而另一个是unsigned int型 那么 只有机器上的long 型足够长以便能够存放unsigned int 的所有值时 一般来说在32 位操作系统中 long 型和int 型都用一个字长来表示 所以不满足这里的假设条件unsigned int 才会

    被转换为long 型 否则两个操作数都被提升为unsigned long 型 

    6  显式转换符号的一股形式如下  

    cast-name< type >( expression ); 

            这里的cast-name 是static_cast    const_cast    dynamic_cast 和reinterpret_cast 之一  

    const_cast    正如其名字所暗示的 将转换掉表达式的常量性 以及volatile 对象的volatile 

    性 例如  

    extern char *string_copy( char* ); 

    const char *pc_str; 

    char *pc = string_copy( const_cast< char* >( pc_str )); 

            试图用其他三种形式来转换掉常量性会引起编译错误 类似地 用const_cast 来执行 

    般的类型转换 也会引起编译错误  

            编译器隐式执行的任何类型转换都可以由static_cast 显式完成  

    double d = 97.0; 

    char ch = static_cast< char >( d ); 

  • 相关阅读:
    个人工作总结2
    个人工作总结1
    各种颜色代码
    第七周学习进度
    安卓的SlidingMenu配置
    第六周学习进度
    ecshop 首页调用指定分类下的销售排行
    EcShop首页显示特定分类的精品新品热销特价等推荐商品
    ecshop调用指定分类热销-新品-精品
    ecshop transport.js 和 jquery 冲突解决办法
  • 原文地址:https://www.cnblogs.com/liujiahi/p/2196387.html
Copyright © 2011-2022 走看看