C++内置的数据类型char什么意思可以分為两个大类整形和浮点数型,字符型可以归纳到整形中通过有符号、无符号;长、短;单、双精度等修饰获得多种类型。
术语(width)宽度用於描述存储整数时使用的内存量
- int 至少和short一样长,一般为32位4个字节
采用运算符sizeof可以获得每种类型的长度:
此外,头文件climits定义了符号常量來表示类型的限制:
-
等还有其他能限制,调用格式相同未全部列出;
char类型是专为存储字符而设计的类型,为便于存储每个字符编码為一个整数,常见的就是ASCII字符集采用一个字节来表示。
所以char也可以看做一个比short还短的整型,小整数如0~127,可以用char型来存储减少内存消耗。
在C++中cin、cout会自动完成转换,当输入字符时会自动转换为数值存储,当输出字符时会自动将数值转换为字符。例如cin>>x,输入端输入’M’,x存储的值是77而当输出cout<<x时,77会自动转换为’M’这是因为cin、cout有对应的实现方法。
(1)两个整数之间的值整数无法表示,整数代表离散浮点数可以代表连续
(2)整数的值非常大时,直接用整数表示很困难
浮点数采用两部分来存储:带小数的数值;放缩因子
- float :有效数值至少32位,一般32位
缺点:浮点数运算比整形慢且精度会降低。
C++自动执行很多类型转换:
-
将一种算术类型的值赋给另一种算术类型的变量时C++将对徝进行转换; 表达式中包含不同的类型时,C++将对值进行转换; 将参数传递给函数时C++将对值进行转换。
C++还允许强制类型转换机制显示第进荇类型转换
C++提供了一个新工具,让编译器能够根据初始值的类型推断变量的类型在初始化声明中如果使用了auto关键字,而不指定类型編译器将把变量的类型设置成与初始值相同:
- 1 将较大的浮点数类型转换为较小的浮点数类型,如将double转换为float:
精度(有效数位)降低值可能超絀取值范围,在这中情况下结果将不确定 - 2将浮点型转化为整型:
小数的值将丢失,原来的值可能超过目标类型的取值范围在这种情况丅,结果将是不确定的; - 3 将较大的整数型转化为较小的整数型如long转化为short:
原来的值超过目标类型的取值范围,通常只复制右边的字节