C++编程入门系列之四(数据类型)

来源:互联网 发布:上海巨人网络 编辑:程序博客网 时间:2024/06/07 03:14

C++编程入门系列之四(数据类型)

基本数据类型: 5种

分别是: bool(布尔型 )、char(字符型 )、int(整型 )、float(浮点型,表示实数 )、double(双精度浮点型),关键字signed和unsigned、short和long起修饰作用。short类型固定占2个字节,long类型固定占4个字节。

signed表示有符号数,unsigned表示无符号数。有符号数以二进制补码形式存储,最高位为符号位,“0”表示正,“1”表示负。无符号整数只能是正数。char型、int型、short型和long型默认情况也就是不加修饰的情况下是有符号(signed)的。

占字节数:
和机器字长及编译器有关系:
所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):
1 sizeof(short int)<=sizeof(int)
2 sizeof(int)<=sizeof(long int)
3 short int至少应为16位(2字节)
4 long int至少应为32位。

unsigned 是无符号的意思。

例如:
16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节

32位编译器

char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节

int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节

64位编译器
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节

常量

所谓常量就是在程序运行过程中始终不会变的量,就是直接用文字表示的值,例如,1,23,true,’B’都是常量。常量又分整型常量、实型常量、字符常量、字符串常量和布尔常量。

字符常量是单引号括起来的一个字符,比如:’b’,’?’。还有一些不可显示字符,例如响铃、换行、制表符等等,C++提供了一种转义序列的表示法来表示这些字符。比如:\a表示响铃,\n表示换行,\t表示水平制表符,\b表示退格,\r表示回车,\表示字符’\’,\”表示双引号,\’表示单引号。ASCII字符常量占用1个字节。

字符串常量是用双引号括起来的字符序列,比如:"China"。字符串常量会在字符序列末尾添加'\0'作为结尾标记。

符号常量

我们除了可以用文字表示常量以外,还可以给常量起个名字,这就是符号常量。这个符号常量就代表了那个常量。符号常量在使用之前必须声明,跟变量相似。符号常量声明形式:const 数据类型说明符 常量名=常量值; 或 数据类型说明符 const 常量名=常量值;。例如,我们给圆周率起个名字,就是符号常量,const float pi=3.1415926;。还有一点必须注意,符号常量声明时必须赋初值,在其他时候不能改变它的值。使用符号常量与文字常量相比有很多好处:程序的可读性更高,我们看到这个名字就能看出它的具体意思,再就是最重要的,如果我们多个地方都用了上面那个pi常量,但后来圆周率的值精度我想改一下,只用3.14,这个时候怎么把所有的pi都换掉呢?我们只需要修改pi的声明就行了:const float pi=3.14;,但是如果使用文字常量即所有用圆周率的地方直接写的3.1415926,那么就必须全找到再换掉,这样不但麻烦而且容易漏掉。

以上知识点需要回答的问题

  1. 有几种基本数据类型,分别是什么?
  2. 分别占的字节数是是多少?
  3. signed 和unsigned 区别是什么?
  4. 符号常量需要注意什么?有什么好处?
  5. 转移字符分别有什么?
  6. 相同的字符序列和字符串有什么sizeof有什么不同?

转自鸡啄米课堂并加以适当的修改

0 1
原创粉丝点击