C++ 中的基本内置类型以及编程过程中对于类型的选择建议
2014-03-07 14:22
232 查看
我的主力博客:半亩方塘
C++
中定义了包括 算术类型 和 空类型 在内的数据类型,空类型一般只用于特定的场合,例如在程序运行完毕后补要求返回任何值时,可对函数类型用空类型,算术类型总的来说包括两个方面:整型(包括字符型以及布尔型在内)
和 浮点型,C++
标准只是规定了算术类型所占的最小比特位:
不同的编译器可以给予这些算术类型比以上这些标准尺寸更大的不同尺寸,对于算术类型,需要强调的有以下几点:
(1) bool 类型只有两个值,非真(1)即假(0),当给一个布尔类型赋一个非零值时,统统按 真(1) 对待,只有赋
0 时,才是 假(0)
(2) int、short、long、long long 全是带符号类型,需要无符号类型时在它的前面加上 unsigned 即可,unsigned int 也通常写作 unsigned
(3) 字符型被分为 char、unsigned char 和 signed char 三种,特别需要注意的是, char 和 signed char 并不一样,尽管字符型有三种,但是字符的表现形式却只有两种:带符号的和无符号的,类型 char 实际上会表现为以上两种形式之一,具体哪种由编译器决定
如何选择类型:
当明确知道数值不可能为负时,选择无符号类型
使用 int 执行整数运算,在实际应用中,short 常常显得太小而 long 一般和 int 有一样的尺寸,如果你的数值超过了 int 的表示范围,选用 long long
在算术表达式中不要使用 char 或者 bool,只有在存放字符或者布尔值时才使用它们,因为类型 char 在一些机器上是有符号的,而在另一些机器上又是无符号的,所以如果使用 char 进行运算特别容易出问题,如果你需要使用一个不大的整数,那么明确指定它的类型是 signed char 或者 unsigned char
执行浮点数运算选用 double ,这是因为 float 通常精度不够而且双精度浮点数和单精度浮点数的计算代价相差无几,事实上,对于某些机器来说,双精度运算甚至比单精度还快,long double 提供的精度在一般情况下是没有必要的,况且它所带来的运算时消耗是不能被忽略的
参考了 C++
Primer中文版第5版
C++
中定义了包括 算术类型 和 空类型 在内的数据类型,空类型一般只用于特定的场合,例如在程序运行完毕后补要求返回任何值时,可对函数类型用空类型,算术类型总的来说包括两个方面:整型(包括字符型以及布尔型在内)
和 浮点型,C++
标准只是规定了算术类型所占的最小比特位:
不同的编译器可以给予这些算术类型比以上这些标准尺寸更大的不同尺寸,对于算术类型,需要强调的有以下几点:
(1) bool 类型只有两个值,非真(1)即假(0),当给一个布尔类型赋一个非零值时,统统按 真(1) 对待,只有赋
0 时,才是 假(0)
(2) int、short、long、long long 全是带符号类型,需要无符号类型时在它的前面加上 unsigned 即可,unsigned int 也通常写作 unsigned
(3) 字符型被分为 char、unsigned char 和 signed char 三种,特别需要注意的是, char 和 signed char 并不一样,尽管字符型有三种,但是字符的表现形式却只有两种:带符号的和无符号的,类型 char 实际上会表现为以上两种形式之一,具体哪种由编译器决定
如何选择类型:
当明确知道数值不可能为负时,选择无符号类型
使用 int 执行整数运算,在实际应用中,short 常常显得太小而 long 一般和 int 有一样的尺寸,如果你的数值超过了 int 的表示范围,选用 long long
在算术表达式中不要使用 char 或者 bool,只有在存放字符或者布尔值时才使用它们,因为类型 char 在一些机器上是有符号的,而在另一些机器上又是无符号的,所以如果使用 char 进行运算特别容易出问题,如果你需要使用一个不大的整数,那么明确指定它的类型是 signed char 或者 unsigned char
执行浮点数运算选用 double ,这是因为 float 通常精度不够而且双精度浮点数和单精度浮点数的计算代价相差无几,事实上,对于某些机器来说,双精度运算甚至比单精度还快,long double 提供的精度在一般情况下是没有必要的,况且它所带来的运算时消耗是不能被忽略的
参考了 C++
Primer中文版第5版
相关文章推荐
- Java 基本类型优先于包装类型,以及二者之间的选择
- objective-c(四)-基本数据类型以及循环和选择结构
- 总结 C++中 基本内置类型 数据所占大小 和数据类型
- C++之类型转换与编程建议
- 对于计算机专业的同学们选择做软件编程还是做网络方向的一点建议 推荐
- 用于测试C++/C程序员的基本编程技能、编程质量以及对C++/C的理解程度的一份考卷试题
- C++与Python的混合编程-调用有参函数以及C++数据类型与Python数据类型间的转换
- objective-c(四)-基本数据类型以及循环和选择结构
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- 用于测试C++/C程序员的基本编程技能、编程质量以及对C++/C的理解程度的一份考卷试题
- 《Python之禅》中对于Python编程过程中的一些建议
- 用于测试C++/C程序员的基本编程技能、编程质量以及对C++/C的理解程度的一份考卷试题
- 用于测试C++/C程序员的基本编程技能、编程质量以及对C++/C的理解程度的一份考卷试题
- C++函数的参数传递机制以及参数的类型选择
- 《Python之禅》中对于Python编程过程中的一些建议
- ISO/IEC C++中的所有基本类型,以及vc 2010支持的值域
- 用于测试C++/C程序员的基本编程技能、编程质量以及对C++/C的理解程度的一份考卷试题
- 用于测试C++/C程序员的基本编程技能、编程质量以及对C++/C的理解程度的一份考卷试题
- C++中变量和基本类型,标准库类型以及数组和指针的使用规则
- 用于测试C++/C程序员的基本编程技能、编程质量以及对C++/C的理解程度的一份考卷试题