zoukankan      html  css  js  c++  java
  • 【C++ Primer Plus 】- chap 3 处理数据

    简单变量

    变量名

    • 两个下划线,或者下划线开头和大写字母开头的名称,保留给实现。
    • 一个下划线的名称被保留给实现,用作全局标识符。

    整型

    • 宽度(width),用于描述存储整数时使用的内存量。
    • C++提供了一种灵活的标准,确保了最小长度:
      • short至少16位
      • int至少与short一样长
      • long至少32位,至少与int一样长
      • long long至少64位,至少与long一样长
    • 字节的含义依赖于实现
    • climits头文件有一些整型限制信息。
    • size of
      • 返回类型或者变量的长度,单位为字节
      • 对类型名,名称放在括号内
    sizeof (int)
    
    • 对变量名,括号是可选的
    sizeof var
    
    • 初始化
    int wrens(432);  //()
    int emus{7};  // {}
    int reheas = {15};  // = is optional
    int rocs = {}; // set rocs to 0
    
    • 无符号类型
      • unsigned 就是 unsigned int
    • 选择整型类型
      • 自然长度(natural size): 计算机处理起来效率最高的长度
      • int 通常是最“自然”的长度 (所以有整型提升)
      • 1-9开头:十进制,0开头第二位1-7:八进制,0x:十六进制
    int x=15645;
    cout<<hex; 
    cout <<x<<endl;
    cout<<oct;
    cout<<x<<endl;
    
    • std::hex,std::oct
    • 如何确定整型常量的类型
      • 一般都视为int, 除非有特殊后缀,或者int放不下
      • 后缀: u->unsigned int, uL->unsigned long, uLL->unsigned long long, L->long, LL->long long;
    • char
      • cout.put(), 显示一个字符
      • 转义字符可以用代码,八进制,十六进制表示,但是数字表示的与特定编码方式相关,而符号表示适用于任何编码。
      • 通用字符名:允许实现提供扩展源字符集和扩展执行字符集。
        • u + 八个十六进制位
        • U + 十六个十六进制位
        • 这两种表示的是ISO 10646码点
      • signed char 和 unsigned char
    char a; // may be signed, may be unsigned
    signed char b; // definitely signed, -128~127
    unsigned char c; // definitely unsigned, 0~255
    
    • wcha_t:宽字符类型,可以表示扩展字符集,可以表示系统使用的最大扩展字符集。
      • 底层类型取决于实现
      • wcin, wcout
    • char16_t,char32_t:都是无符号,都有底层类型——一种内置的整型,可能随系统。
      • char16_t: 长16位
      • char32_t: 长32位

    const

    • 声明的时候,一定要初始化

    浮点类型

    • 有效位要求:
      • float至少32位
      • double至少48位,且不少于float
      • long double至少和double一样多
    • 头文件cfloat or float.h可以看一些系统限制。
    • 常量后缀:
      • f or F: float, l or L:long double
      • 一般是double
      • 有些ANSI C之前的编译器的C++实现不支持f,那就用(float) x, or float(x).

    算术运算符

    • 两个运算符的优先级相同的时候,看结合性是从左往右还是从右往左
    • 仅当两个运算符被用于同一个操作数的时候,优先级和结合性规则才有效

    类型转换

    • {} 列表初始化
      • 不允许缩窄 narrowing
      • 看类型 or 常量, ex:
    int x=55;
    char ch = {x};  //not allowed,虽然55可以放下,但x是个变量,编译器不知道可不可以所以就不给放
    
    • 表达式中
      • 整型提升:bool, char, unsigned char, signed char, short都会转成int,如果short比int短,则unsigned short转成int; short and int长度相同的话, ->unsigned int
      • wchar_t提升成第一个宽度够的类型,int, unsigned int, long, unsigned long;
    • static_cast (value);
    • auto
      • C++11
      • 根据初始值自动判断
    std::vector<double> scores;
    std::vector<double>::iterator pv = scores.begin();
    // auto pv= scores.begin();
    

    习题

    • auto crat=U'U00002155' //char32_t类型
  • 相关阅读:
    虚拟机字节码执行引擎 —— 方法调用
    虚拟机字节码执行引擎 —— 运行时栈帧
    Java 虚拟机类加载机制
    MySQL提升笔记(1):MySQL逻辑架构
    【JVM进阶之路】十:JVM调优总结
    【JVM进阶之路】九:性能监控工具-可视化工具篇
    SpingCloud Alibaba实战(1:微服务与SpringCloud Alibaba)
    【JVM进阶之路】八:性能监控工具-命令行篇
    【JVM进阶之路】七:垃圾收集器盘点
    【JVM进阶之路】六:垃圾收集理论和算法
  • 原文地址:https://www.cnblogs.com/xuwanwei/p/12844713.html
Copyright © 2011-2022 走看看