C++primer第三章——C++数据类型

1.字(word),字节(byte),位(bit).1word=4byte=32bit.这是针对32位操作系统来说的,对于64位则1word=64bit.这有赖于机器(计算机)。当然还有8位机,16位机。分别表示一个字=一个字节,一个字=两个字节的机器。注意,64位机可以安装32位操作系统,而32位机则不能安装64位操作系统。

2.基础知识

a.字符型char,表示单个字符和小整数,占位一个机器字节

b.整型int,短整型short,长整型long.代表不同长度的整数值。short半个字(2个字节)int一个字(4个字节)。long至少一个字(4个字节或者8个字节,看具体的机器)

c.浮点型float,双精度double和长双精度long double,分别表示单精度浮点数,双精度浮点数和扩展精度浮点数。一般的,float一个字(4个字节32位)double两个字(8个字节),long double为三个或者四个字。

d.char,shot,int和long称为整型,他们均分为有符号和无符号类型,有符号的第一位被用作符号位,所以能表示的范围也就比无符号类型的少了一半。注意char默认是有符号的。比如char ch1='a',其实指的是它的的assci码97。若我们这样定义char a='3'.那么如果我们以以下这两种方式打印出a,则结果不同printf(“%d",a)打出的是51,printf("%c",a)打出的则是3.这点要注意。

3.文字常量,比如3,是不可寻址的,尽管它的值也存储在机器的某一个地方,但是我们无法招到它的确切位置。

4.整型或者浮点型有三种形式,十进制,八进制(在数值前面加O)或者十六进制(在数值前面加OX)三者转换应该通过二进制来转换。

5.可加后缀来表示这个数值的类型(有无符号,长型,短型,float型,double型)汝128u,1024uL,1L,8Lu,3。14159F,0.1F,12.345L。还能用科学计数法:汝1.0E-3,3e1等等。注意浮点数默认的是有符号的double型。


6。浮点型是没有符号的,所以3.14uL这种写法是错误的。


7.变量。对于没一个变量,都有两个值与其相关联:

它的数据值,存储在某个内存地址中。有时候这个值也被称为对象的右值(rvalue)。我们也可以认为右值的意思是被读取的值(read value)。文字常量和变量都可以用作右值。

它的地址,即存储数据值的那块内存的地址。它有时候被称为变量的左值(lvalue)。我们也可认为左值的意思是位置值(location value).文字常量不能被用作左值。


8.对象声明(declaration)的作用是使程序知道该对象的类型和名字。声明不是定义,不会引起内存分配。实际上,它只是说明在程序之外有这个变量的定义。


9.如果一个变量是在全局(global scope)内定义的,那么系统会保证给它提供初始值0.如果变量是在局部域内(local scope)定义的,或者是通过new表达式动态分配的,则系统不会向它提供初始值0.这种对象称为未初始化对象,未初始化对象不是没有值,而是它的值未定义。因为使用未初始化对象是个常见错误,而且河南发现,所以一般建议为每个定义的对象提供一个初始值。类机制通过所谓的缺省构造函数提供了类对象的自动初始化。


10.一个被声明了初始值的对象也被称为已经初始化(initialized)。C++支持两种形式的初始化。显式和隐式的。

   显式:int ival=1024; string project="Fantasia 2000";

   隐式:int ival(1024);string project("Fantasia 2000");


11.每种内置数据类型(int,float,char ,double等)都支持一种特殊的构造函数语法,可将对象初始化为0.例如:

   int ival=int();

   double dval=double();

  vector<int> ivec(10);十个元素的向量,初始值为0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值