C++变量类型的那些事
来源:互联网 发布:fw190d13数据 编辑:程序博客网 时间:2024/06/01 13:05
- C变量类型的那些事
- 如何选择类型
- 类型转换
- 字面值常量
- 整形和浮点型的字符常量
- 指定字面值的类型
C++变量类型的那些事
同样的变量类型名在不同的机器 下的含义不一定相同,下表C++标准规定的变量所对应的的最小尺寸。
有些类型分为带符号的(signed)和无符号的(unsigned)两种。一般情况下,缺省符号都是signed,如int,short,long等都是有符号的,值得一提的是,与其他整形不同,字符型char和signed char并不一样。char具体是signed还是unsigned由编译器决定。
如何选择类型
这儿提几点建议:
- 如果你需要一个不大的整数,可有明确地指定他的类型是signed char或者是unsigned char。
- 执行浮点数运算时选用double,引文float通常精度不够而且双精度和单精度的计算代价相差无几。事实上,对于某些机器来说,双精度运算甚至更快一些。long double提供的精度在一般情况下是没有必要的,而且带来的时耗也不容忽视。
类型转换
- 当我们把一个整数值赋给浮点数类型时,小数部分记为0。如果该整形所占的空间超过了浮点数的容量,精度可能会丢失。
- 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值取模后的余数。
- 当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的(undefined)。此时,程序可能继续工作,可能崩溃,也可能生成垃圾数据。
写程序时一定要考虑程序的可移植性,例如在不同的平台上int的长度是不一样的,如果我们把int的尺寸看成是一个确定不变的已知值,那么这样的程序就是不可移植的(nonportable)。
字面值常量
一个形如42的值被称作位字面值常量(literal),这样的值一望而知。每个字面值常量都对应一个数据类型,字面值常量的的形式和值决定了它的数据类型。
整形和浮点型的字符常量
默认情况下,整数的十进制字面值对应的是带符号的数据类型,而八进制和十六进制则不确定。十进制的字面类型是int,long,longlong中尺寸最小的那一个,当然前提是这种类型要容纳下当前的值。而八进制则是int,unsigned int,long,unsigned long,longlong,unsigned long long 中尺寸最小者。
浮点型字面值表现为一个小数或以科学计数法表示的指数:
3.1415 3.14159E0 0. 0e0 .001
默认情况下,数据类型是double。当然可以用前缀和后缀来说明。
指定字面值的类型
整数
浮点数
0 0
- C++变量类型的那些事
- C 变量的存储类型
- C语言-变量的类型
- c的那些事
- 成员变量,局部变量-变量的那些事
- c语言变量的存储类型
- C语言变量类型的本质
- C语言变量类型的本质
- c语言中变量的类型浅析
- C语言中的变量的存储类型
- c的32个变量类型
- C\C++中变量的存储类型
- C语言结构类型变量的说明
- C变量和函数的存储类型
- C语言中变量的存储类型
- C变量和函数的存储类型
- 【C语言】-变量之间的类型转换
- C语言的变量存储类型
- AIDL实现跨进程通信
- 在Visual Studio中使用AnkhSVN和Beyond Compare
- 第五周项目1 体验常成员函数
- vim 命令总结(持续更新)
- 《Java程序设计》第一次作业:简单的JAVA源代码之计算器
- C++变量类型的那些事
- Nginx 实时生成缩略图
- linux下进程的最大线程数、进程最大数、进程打开的文件数
- 23种设计模式(Observer模式)
- 关于fork的不解之处
- 第24课时,自测
- warning: skipping copy phase strip, binary is code signed: .....
- iOS之UITextView和UITextFiled的区别
- Leetcode_53_MaximumSubarray