第三章 处理数据

3.1 简单变量
①C++命名规则

  • 在名称中只能使用字母字符,数字和下划线
  • 名称的第一个字符不能是数字
  • 区分大写字符和小写字符
  • 不能将C++关键字用作名称
  • 以两个下划线打头或以下划线和大写字母大头的名称被保留给实现使用。以一个下划线开头的名称被保留给实现,用作全局标识符
  • C++对于名称的长度没有限制

②整型
【字节指的就是描述计算机内存量的度量单位】

  • char 8bit 1byte
  • short 16bit 2byte
  • int 至少16bit 一般是4byte
  • long 至少32bit 一般是8byte
  • long long 至少64bit 一般是16byte
    【使用C++工具检测类型的长度】
  • sizeof运算符返回类型或变量的长度,单位为字节
  • 字节的含义依赖于实现,一个系统中,两字节的int可能是16位,在另一个系统中可能是32位【8位字节系统中,int长度为4个字节 sizeof(int)/sizeof a】

③无符号类型

  • 4种整型都有一种不能存储负数值得无符号变体,优点是可以增大能够存储得最大值【short -32768 ~ +32767 无符号 0-65535】仅当数值不会为负时才使用无符号类型,unsigned即unsigned int缩写
  • 整型变量如果超越了限制,其值将为范围另一端的取值,C++确保了无符号类型的这种行为,但C++并不保证符号整型超越限制【上溢/下溢】时不出错

④自然长度
自然长度指的是计算机处理起来效率最高的长度。如果没有非常有说服力的理由选择其他类型,则应使用int【由于short比int小,使用short可以节省内存】

⑤C++确认常量类型
整数后面的l或L后缀表示该整数为long常量,u/U后缀表示unsigned int常量,ul表示unsigned long常量

⑥char类型
编程语言通过使用字母的数值编码解决了字母的存储

  • cout.put()函数,该函数显示一个字符,通过对象使用成员函数,必须用句点将对象名和函数名称连接起来,据点被称作成员运算符

  • C++书写字符常量,常规字符,用单引号括起来【表示字符的数值编码】,特殊字符【转义序列表示,\a表示振铃字符,\n表示换行符,\“ 将双引号作为常规字符】
    -显示数字时,使用endl比输入\n更容易些,但是显示字符串时,在字符串末尾添加一个换行符所需的输入量要少些

  • C++新增类型char16_t,char32_t,无符号类型,长度同后

  • C++添加了bool新类型,用预定义的字面值true和false表示,字面值可以通过提升转换为int类型1/0,任何数字值或指针值都可以被隐式转换为bool值,任何非零值都被转换为true,否则false

3.2 const限定符
注意,应该在声明中对const初始化,如果在声明常量时没有提供值,则该常量的值将是不确定的,且无法修改,const比#define好,首先它能够明确指定类型,其次,可以使用C++作用域规则将定义限制在特定函数或文件中,最后,将const用于更复杂的类型

3.3 浮点数

  • 使用浮点类型标识带小数部分的数字,该值分为两部分存储,一部分表示值,一部分对值进行放大或缩小【34.1245 基准值0.341245,缩放因子100,缩放因子的作用时移动小数点的位置,浮点因此得名,C++内部表示浮点数的方法与此相同,只不过基于二进制数,缩放因子是2的幂】
  • E确保数字以浮点格式存储,即可以使用E也可以使用e,指数可以是正数也可以是负数,然而,数字中不能有空格 d.dddE+n 将小数点右移n位,而d.dddE-n 将小数点左移n位
  • 3种浮点类型 float【32bit】 double【64bit,至少48bit】 long double【80/96/128 bit】
  • cout会删除结尾的零,调用cout,setf() 将覆盖这种行为
  • 浮点常量,像8.24/2.4E8 这样的浮点常量都属于double类型,如果希望其他类型,使用后缀
  • 与整数相比,浮点数优点【可以表示整数之间的值,可以表示的范围大得多,运算速度比整数慢且精度降低】

3.4 C++算术运算符

  • %运算符求模,两个操作数必须都是整型,将该运算符用于浮点数将导致编译报错
  • float表示有效位数的能力优先,对于float,C++只保证6位有效位,11.17+50.25 =61.419998,如果四舍五入到6位,将得到61.4200,保证精度下的正确值
  • C++ 11将大括号的初始化称为列表初始化,常用于给赋值的数据类型提供值列表,对类型转换的要求更严格,初始化不允许缩窄,即变量类型可能无法表示赋给它的值,不允许将浮点型转换为整型
  • 计算表达式时,C++将bool,char,unsigned char,signed char,short值转换为int,这种转换称为整型提升【运算速度最快】,将不同类型进行算术运算时,也会进行转换【涉及两种类型时,较小类型将被转换为较大类型】
  • C++还允许强制类型转换机制显式地进行类型转换【typeName(thorn) 强制类型转换不会修改thorn变量本身,而是创建一个新的,指定类型的值 static case<>用于将一种数值类型转换为另一种数值类型】
  • C++新增auto声明 使用关键字auto,而不指定变量的类型,编译器将把变量的类型设置成与初始值相同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值