第二章 数据类型运算符和表达式

Posted earl-jones

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二章 数据类型运算符和表达式相关的知识,希望对你有一定的参考价值。

0x 考试内容要求


  1. 掌握C++的数据类型
  2. 解常量定义
  3. 掌握常量的用法
  4. 掌握运算符种类以及其优先级和结合性
  5. 熟练掌握表达式

1x C++语言的数据类型


C++中每个变量或者常量都需要拥有自己的一种数据类型

C++将数据类型分为三种:

  • 基本数据类型
  • 构造类型(导出数据类型)
  • 自定义类型
技术分享图片

 

1x.1 基本类型

  • 逻辑型——bool
    • BOOL布尔型,用0,1来表示逻辑真假
    • 只拥有个值:truefalse分别用1、0表示

  • 字符型——char
    • 取值范围:ASCII,扩充ASCII
    • 占用一个字节,即8位
    • ASCII中的字符和整数具有对应关系
    • 取值范围:0~255

  • 整型——int
    • 16位机,占2个字节;32位机占4个字节
    • 取值范围为:-32768~32767

  • 浮点型——floatdouble
    • 单精度浮点型(float)占4个字节;
    • 双精度浮点型(double)占8个字节;

  • 空类型——void
    • 表示取值为空
    • void *p表示指向类型不明确

1x.1.1 基本类型的派生类型

  • 基本类型的派生类型是指——基本类型的字长及其取值范围可以放大缩小,改变后的类型

  • 派生类生命符由基本类型关键字面前加上修饰符组成
    • short——缩短字长
    • long——加长字长
    • signed——有符号类型,取值类型包括正负值
    • unsigned——无符号类型,取值范围只包括正值
      Tip:该规则并不可以应用于全部基本类型具体请参照下表,图片来源:见水印
      技术分享图片技术分享图片


1x.1.2 常量

常量是指在程序执行过程中值不改变的量。
有两种表示形式:字面常量和符号常量。

字面常量

  1. 逻辑常量
    • 有两个值:TrueFalse
    • 分别用1、0表示
    • 可以参与算数运算

  2. 字符常量
    • 简称字符:以单引号作为起止符号
    • ASCII是字符范围落在字符型类型的范围内,所以也是字符常量(个别字符除外)
    • 转义字符:用反斜杠“\\”引导的下一个字符,失去了原来的含义,而转义成了别的意义
    • 允许反斜杠一道一个具有1至3位的八进制数或以x开始标记的1至2位十六进制

  3. 整型常量
    • 十进制整数:整数和负数-231~231-1
    • 八进制整数:以数字0开头,全部默认为正数
    • 十六进制整数:以数字0和字母xX开头
    • 整型数表示允许后面添加后缀uU来表示无符号和lL来表示长整型
  4. 实型常量
    • 定点表示:用小数形式表示实数,小数点可以出在任何一个数字为的前面或者后面
      甚至.01 -.012都是合法的
    • 浮点表示:以指数形式表示
      • 由一个十进制整数后接一个字母Ee和一个1~3位的十进制整数组成,E/e前面的称为尾数,E/e后面的称为指数。
      • 该浮点数的值等于尾数乘以是的指数幂
  5. 枚举常量
    • 枚举属于用户定义类型,用enum表示
    • 用来定义程序中的需要使用的一组相关符号常量
    • 声明枚举类型的语法格式
        enum <类型名>{<枚举值1>,<枚举值2>...}//这里的枚举具有顺序性
    
    • 说明
      • 一个枚举类型是int类型的一个子集,每一个枚举值代表着一个整数(默认从0开始,依次加一以表示枚举值的顺序性)
      • 若第i个枚举值常量值为m,则后续的枚举值分别与m+1 m+2对应向前对应为m-1

符号常量

  • 由用户定义,定义方法有两种,一种为预编译器的#defined或使用conts关键字。

1x.1.3 变量

  • 变量是程序中用于存储信息的单元,它对应于内存中的某段存储空间。
  • 定义变量需要说明变量的数据类型和名字
  • 数据类型说明为变量分配多少的内存空间
  • 变量名可以代表存储空间,因此程序能在变量中存储值和取出值
  1. 变量的定义
    1. 定义的格式:
      储存类 变量类型 变量名=初始化值/初始表达式;
      • 默认储存内类为auto
      • 若未赋初值,则变量的值不确定
      • 可以定义多个变量,各个变量之间用逗号运算符,分开
    2. 变量名的命名规则:
      • 必须是一个合法的C++标识符
      • 不能使用C++关键字
  2. 变量的使用方法
    1. 全局变量和局部变量
      • 全局变量——在所有函数定义、类定义和程序块之外声明的变量
      • 若没有初始化,系统会自动为其赋值为0
        (这里就和局部变量的自动初始化区别开来)
      • 在程序的任何一个函数、类或者程序块之外都能访问全局变量
      • 局部变量——在某个函数定义、类定义和程序块之类声明的变量
      • 局部变量只能在声明它的局部范围内被访问
    2. 生存期和作用域
      • 生存期——指从一个变量被声明且分配内存开始,直到该变量声明语句失效,它占用的内存空间被释放为止
        • 全局变量——从声明开始,知道程序结束为止
        • 局部变量——从声明开始,到包含它的最近的一个程序块结束为止
      • 作用域——指变量名可以代表该变量储存空间的范围
      • 一般来说,变量的作用域与其声明周期是一致的
        可以使用动态分配空间的方法来控制变量的声明周期
    3. 变量的存储类属性
      C++根据存储方式的不同将存储类别划分为4类:
      • auto变量——自动变量,为变量声明时的默认储存类别
      • register变量——寄存器变量,建议编译器以寄存器作为存储空间
      • static变量——静态变量,声明周期延续到程序的总之,默认赋初始值为0
      • extern变量——外部变量,通常用于多个文件组成的程序中,多个文件同时被声明指向同一个变量。
    4. typedef类型说明
      使用关键字typedef可以为已有类型名定义一个新类型名,为了提高代码的可读性。
      其格式为:
      typedef [已有类型名] [新类型名]
      
    5. 符号常量声明语句
      • 声明语句格式:
          const [类型名] [符号常量名] = 初值表达式
      
      • 必须在声明符号常量的同事为其赋初值
      • 符号常量的值为常量,以后这个值始终保持不变。不能再次赋值
      • 若类型名为int则可以省略类型名
      • 适当使用可以提高的程序的可读性和可维护性

 







































以上是关于第二章 数据类型运算符和表达式的主要内容,如果未能解决你的问题,请参考以下文章

第二周学习

20165332《Java程序设计》第2周学习总结

第二周学习问题

20175324第二周学习总结

20165217第二周学习总结

20165337第二周学习总结