• 第三章 数据处理


    第三章  处理数据

    3.1  简单变量

      3.1.1  变量名

        C++标识符命名规则如下:

          ●  在名称中只能使用字母字符、数字和下划线

          ●  名称的第一个字符不能是数字

          ●  区分大写字母和小写字母

          ●  不能将C++关键字用作名称

          ●  以两个下划线或下划线和大写字母开始的名称被保留给实现(编译器及其资源)使用,以一个下划线开头的名称被保留给实现(库函数的实现)。

          ●  C++对名称的长度没有限制,但是某些平台有限制

        3.1.2  命名方案

        在变量名中使用变量类型作为前缀是好的习惯。例如整形变量可是使用n或者int的前缀、布尔型使用b前缀、指针使用p前缀、字符型使用c前缀、字符串型使用str或者sz前缀等。

    3.2  整型

        3.2.1  short, int, long 和 long long

        short, int, long 和 long long的比特位数有如下约定:

        ●  short至少为16位

        ●  int至少与short一样长

        ●  long至少为32位,且至少与int一样长

        ●  long long至少为64位,且至少与long一样长

        说明: 1. 可以使用sizeof运算符检查类型的长度;

              2. 在climits头文件中包含了关于整型的限制信息。

    3.2.2  初始化方式

           C语言的初始化方式有:

        int i = 5;        //使用常量初始化
        int j = i; //使用变量初始化
        int k = i + j; //使用表达式初始化

           C++特有的初始化方式:

         int l(100);        //使用小括号

           C++11初始化方式:

        int m = { 10 };    //使用大括号
        
    int n{ 10 }; //使用大括号并省略等号

    3.2.3  无符号类型

        无符号类型有unsigned short、unsigned int、unsigned long、unsigned long long。

    3.2.4  选择类型

        int被设置为对目标计算机而言最“自然”的长度。这里“自然”是指计算机处理起来最快的长度。所以如果没有其他理由应当尽量使用int。

    3.2.5  字面值

        如果第一位是1~9,则表示十进制;

        如果第一位是0,第二位是1~7,则表示八进制;

        如果第一位和第二位是0X或0x,则表示十六进制;

        整型字面值默认为int型(除非字面值过大或者加了表示其他类型的后缀);

        整型字面值加上后缀可以表示其他类型;

        L或者l表示long型,U或者u表示unsigned,ul(顺序和大小写任意)表示unsigned long型,ull表示unsigned long long型。

    3.2.6 char型:字符和小整数

        默认的,char既不是有符号的也不是没有符号的。是否有符号取决于C++的具体实现。但是可以手动指定符号,使用signed char和unsigned char。

           C++11新增:

                1)        wchar_t。wchar_t有足够的空间,可以表示系统使用的最大扩展字符集。

                2)        char16_t。表示无符号16位。

                3)        char32_t。表示无符号32位。

        字符字面值用单引号括起来。如’a’和’A’。

        通用字符名。通用字符集是由ISO制定的ISO 10646标准所定义的字符编码方式。的用法类似于转义序列。通用字符名以u或者U开始。u后面跟4个十六进制数,使用2个字节,。U后面跟8个十六进制数,使用4个字节。

    3.2.7  bool类型

          C++将0值解释为假,将其他值解释为真。

      关键字true值为1;

      关键字false值为0。

    3.2.8  const限定符

        用法如:

        const int MONTHS = 12;        //符号常量

           C语言使用#define定义符号常量。

           C++应使用const限定符。

    3.3  浮点型

        3.3.1  浮点数的书写

            1)        标准小数点表示法

              如: 12.34

            2)        E表示法

              如:2.52e+8、2.3E-4

    3.3.2  C++中的浮点数

           C++提供了三种浮点数:

          ●  float。至少32位。

          ●  double。至少48位,且不少于float。一般为64位。

          ●  long double。至少和double一样多。一般为128位。

    3.3.3  浮点常量

        浮点字面值默认为double型。可用加入后缀表述其他类型。

        加f或者F后缀为float型,加l或者L后缀为long double型。

    3.4  类型转换

        3.4.1  自动类型转换

        遇到以下三种情形,C++自动执行类型转换:

            1)        将一种算术类型的值赋给另一种算术类型的值

            2)        表达式中包含不同的类型时

            3)        将不同于形式参数的实参传递给函数时

        注意:C++11中,使用初始化列表时,初始化不允许缩窄(narrowing)。如

        char ch = { 31325 };    //错误

           C++11中,算术表达式的自动转换使用的校验表如下:

                1)        如果有一个操作数的类型时long double,则将另一个操作数转换为long double。

                2)        否则,如果有一个操作数的类型是double,则将另一个操作数转换为double。

                3)        否则,如果有一个操作数的类型是float,则将另一个操作数转换为float。

                4)        否则,说明操作数都是整型,因此执行整型提升。

                5)        在这种情况下,如果两个操作数都是有符号或无符号的,且其中一个操作数的级别比另一个低,则转换为级别高的类型。

                6)        如果一个操作数是有符号的,另一个操作数为无符号的,且无符号操作数级别比有符号操作数级别高,则将有符号操作数转换为无符号操作数所属的类型。

                7)        否则,如果有符号类型可表示无符号类型的所有可能取值,则将无符号操作数转换为有符号操作数所属的类型。

                8)        否则,将两个操作数都转换为有符号类型的无符号版本。

        3.4.2  强制类型转换

           C++允许通过强制类型转换机制显示地进行类型转换。

        强制转换的通用格式如下:

        typeName (value);
        (typeName) value;

        也可以使用C++的static_cast,格式如下

        static_cast<typeName>(value);

        3.4.3  C++11中的auto声明

           C++11新增一个工具,让编译器能够根据初始值的类型推断变量类型。定义了auto的含义。如:

          auto x = 0.0;        //x的类型是double
  • 相关阅读:
    20.Docker Swarm集群
    Phalcon下命令行应用(command line applications)
    Mysql 命令备忘
    PHPExcel+phalcon+yii批量导入
    Yii 之分页 + bootstrap
    PHPMailer+phalcon中使用
    Phalcon之分页
    虚拟机中ip和host设置问题
    php RSS订阅功能
    ubuntu/linux下设置永久路由
  • 原文地址:https://www.cnblogs.com/Dream-Fish/p/3942398.html
Copyright © 2020-2023  润新知