上篇内容讲述了整个语言的发展【为什么会产生编程语言】,以及学习C++所需要掌握的内容。
这节开始认识第一部分最基本的内容:C++的内建类型,也就是基本类型。

在这些知识之前留一个问题:为什么基本所有语言中都有相似的这些基本类型。

bool : 用于表示真/假

bool b_ret1 = true;
bool b_ret2 = false;

short /long :short用于缩减/增大整数表示的范围,也就是占用内存的多少。
signed / unsigned :指定符号。但不会改变内存大小。

int(signed int) / unsigned int :表示一般意义上的整数,两者的区别在于有无符号。
加上short,signed,unsigned后,就可以控制整数的范围。所以有了多种整数:
int(signed int) / unsigned int
signed short int / unsigned short int
signed long int / unsigned long int

int age = ;
unsigned int age2 = ;
short int age3 = ;
unsigned short int small_int = ;
unsigned long int big_number = ;

char(signed char) / unsigned char :表示字符。编程中用char已经足够了,效率也不会用影响。
这个类型有些纠结,本意是表示字符的,但是经常用它的数组存储数据,等说到指针的时候,再详细说吧。

char letter_char = 'c';

wchar_t :宽字节字符。由于char在计算机存储中占用一个字节,最多能表示256个字符,
英语字符是足够储存,但是光汉字就有上万个,char已经无能为力了。
所以wchar_t占两个字节,甚至四个字节,完成足够表示其它民族的语言。

wchar_t wide_char = L'c'

float: 单精度浮点 double:双精度浮点 long double :扩展精度
两个类型在概念上都是小数,double比float多占用了内存空间,表示的更精确。一般的小数用float就可以了。

float _length = 3.5f;
double _length = 3.5555
long double l_legnth = .5e-3L

void:空类型。一般用表示无返回值 ,或者不确定类型的对象。

return void;
void* p = ;

Windows XP 32位平台下的取值范围:

Type

Size

数值范围

无值型void

0 byte

无值域

布尔型bool

1 byte

true   false

有符号短整型short [int] /signed short [int]

2 byte

-32768~32767

无符号短整型unsigned short [int]

2 byte

0~65535

有符号整型int /signed [int]

4 byte

-2147483648~2147483647

无符号整型unsigned [int]

4 byte

0~4294967295

有符号长整型long [int]/signed long [int]

4 byte

-2147483648~2147483647

无符号长整型unsigned long [int]

4 byte

0~4294967295

long long

8 byte

0~18446744073709552000

有符号字符型char/signed char

1 byte

-128~127

无符号字符型unsigned char

1 byte

0~255

宽字符型wchar_t (unsigned short.)

2 byte

0~65535

单精度浮点型float

4 byte

-3.4E-38~3.4E+38

双精度浮点型double

8 byte

1.7E-308~1.7E+308

long double

8 byte

由于平台和编译器的不同,每种类型的范围及所占内存大小并不确定。想具体确定可以用下边代码(转自:http://www.cnblogs.com/ma6174/archive/2012/02/04/2337958.html

#include <stdio.h>
#include <limits.h>
#include <float.h>
#include <stdlib.h>
int main(void)
{
printf("char类型的变量存储值从%d到%d\n", CHAR_MIN, CHAR_MAX);
printf("unsigned char类型的变量存储值从0到%u\n", UCHAR_MAX);
printf("short类型的变量存储值从%d到%d\n", SHRT_MIN, SHRT_MAX);
printf("unsigned short类型的变量存储值从0到%u\n", USHRT_MAX);
printf("int类型的变量存储值从%d到%d\n", INT_MIN, INT_MAX);
printf("unsigned int类型的变量存储值从0到%u\n", UINT_MAX);
printf("long类型的变量存储值从%ld到%ld\n", LONG_MIN, LONG_MAX);
printf("unsigned long类型的变量存储值从0到%lu\n\n", ULONG_MAX);
printf("long long类型的变量存储值从%lld到%lld\n", LLONG_MIN, LLONG_MAX);
printf("unsigned long long类型的变量存储值从0到%llu\n", ULLONG_MAX);
printf("最小的非零float类型变量的值的是%.3e\n", FLT_MIN);
printf("最大的float类型变量的值的是%.3e\n", FLT_MAX);
printf("最小的非零double类型变量的值的是%.3e\n", DBL_MIN);
printf("最大的double类型变量的值的是%.3e\n\n", DBL_MAX);
printf("最小的非零long double类型变量的值的是%.3Le\n", LDBL_MIN);
printf("最大的long double类型变量的值的是%.3Le\n", LDBL_MAX);
printf("float类型的变量提供%u位精度的小数位数\n", FLT_DIG);
printf("double类型的变量提供%u位精度的小数位数\n\n", DBL_DIG);
printf("long double类型的变量提供%u位精度的小数位数\n", LDBL_DIG);
system("pause");
return ;
}

最新文章

  1. java的poi技术读取Excel[2003-2007,2010]
  2. 使用javascript打开一个新页而不被浏览器屏蔽
  3. Quartz 2D绘制简单图形
  4. 有用的.NET库
  5. Python下载Yahoo!Finance数据
  6. C# Java间进行RSA加密解密交互
  7. android线程与线程池-----线程池(二)《android开发艺术与探索》
  8. Stream To String , String To Stream
  9. 【设计模式 - 5】之适配器模式(Adapter)
  10. java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
  11. MySQL replace into 说明(insert into 增强版)
  12. 非常简洁的js图片轮播
  13. flex中日期的格式化
  14. 基本MarkDown语法
  15. java如何获得数据库表中各字段的字段名
  16. Nginx的配置文件nginx.conf解析
  17. input radio单选框绑定change事件
  18. http之理解304
  19. 【Vue】组件watch props属性值
  20. web前端优化

热门文章

  1. Python中的两种结构dict和set
  2. 7、SpringMVC源码分析(2):分析HandlerAdapter.handle方法,了解handler方法的调用细节以及@ModelAttribute注解
  3. poj2454
  4. c创建win窗口
  5. C# 控件双缓冲控制 ControlStyles 枚举详解
  6. BZOJ 2154 Crash的数字表格
  7. grunt + compass retina sprites
  8. trackr: An AngularJS app with a Java 8 backend – Part II
  9. CXF客户端异常
  10. 强势解决:windows 不能在本地计算机中起动Tomcat参考特定错误代码1