首页 > 代码库 > C++学习笔记之数据类型

C++学习笔记之数据类型

一、变量名

几条简单的C++命名规则:

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

二、数据类型

计算机内存的最基本单元是位(bit)。字节(byte)通常指的是8位内存单元,可以表示的范围0-255或者-128到127。

(1)整型

  • short至少16位(大多数系统16位,-32768到+32767或者0-65535)
  • int至少与short一样长(win7中32位)
  • long至少32位,且至少与int一样长
  • long long 至少64位,且至少与long一样长

对类型名或者变量名使用sizeof运算符,可以得到类型的字节数。

无符号类型关键字:unsigned xx

char类型也是一种整型,专为存储字符而设置的,它足够长,能够表示目标计算机系统中所有的基本符号——所有的字母、数字、标点符号,很多系统支持的字符都不超过128个,因此用一个字节就够了。

bool类型true or false

三、const限定符

const 创建常量时必须在声明时就初始化

四、浮点数

区别于整型,能够表示小数。书写方式:

  • 12.34
  • 939001.12
  • 0.000032
  • 8.0(即使小数部分为0,小数点也确保该数字以浮点格式表示,而不是整数格式)
  • 2.52e+8
  • 8.33E-4

浮点类型:

  • float(通常32位)
  • double(通常64位)
  • long double

浮点常量:像8.24和2.4E8这样的浮点常量都属于double类型,如果希望常量为float类型,请使用f或者F后缀,对于long double类型使用l或者L后缀(由于l看起来像1,使用L是更好的选择),如:

1.234F

2.4E20F

2.2L

五、类型转换

只允许由较窄的类型向较宽的的类型升级(类型提升),不可由宽到窄降低。如将浮点值赋给整型很可能导致两个问题:整型会将数字截短(除掉小数部分),另一方面  float对于int变量来说可能太大了。

在此类潜在的问题将会引起不可预料的错误。

当同一个表达式中出现两种不同的的算术类型时,C++将执行两种自动转换:

  • 一些类型再出现时便会自动转换
  • 有些类型在与其他类型同时出现在表达式中时将被转换

除了自动转换,另一个重要的方式是强制类型转换,如将存储在变量thorn中的int值转换为long类型:

  • (long) thorn 或者thorn (long)  (C语言风格)
  • static_cast<long> (thorn)

强制类型转换不会修改thorn变量本身,而是创建一个新的、指定类型的值。