c++Primer,二,变量和基本类型

来源:互联网 发布:php.ini 设置编码 编辑:程序博客网 时间:2024/05/03 01:57

第二章 变量和基本类型

        类型是所有程序的基础。类型告诉我们数据代表什么意思以及可以对数据执 行哪些操作。

内置类型:C++ 定义了一组表示整数、浮点数、单个字符和布尔值的算术类型,另外还 定义了一种称为 void 的特殊类型。void 类型没有对应的值,仅用在有限的一 些情况下,通常用作无返回值函数的返回类型。大多数计算机将存储器中的每一个字节和一个称为地址的数关联起来每个类型都有自己的最大字节数。

字面值常量:称之为字面值是因为只能用它的值称呼它, 称之为常量是因为它的值不能修改。 每个字面值都有相应的类型只有内置类型存在字面值,没有 类类型的字面值。计算机能看到的字面值就是数值和字符了,不要过度区分英文字符和汉字字符,他们只是所需存储容量大小不同,必经c++是外国人发明的,当然用java的话,char是2个字节,就不会纠结汉字和英文字符了。现在要纠结的是一大串字符了,也就是字符串字面值常量,字符串字面值常量用双引号括起来的零个或者多个字符表示。为了兼容 C 语言,C++ 中所有的字符串字面值都由编译器自动在末尾添加 一个空字符。字符串是用char数值来存储的。再说一次,汉字用2个char大小,英文(其实是ascii码)用一个char大小。

变量是什么就没什么好说的啦,不同的类型只能存储相应大小格式的数据。定义一个变量很简单,“类型 标识符”,OK了,要说的就是初始化,C++ 支持两种初始化变量的形式: 复制初始化和直接初始化。复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中Java还有内置类型包装类这种东西。对于内置类型,初始化很好理解,对于类类型来说,初始化则需要构造函数来完成初始化,也就是直接初始化。如果不显示初始化他们,有时候在作用域内会自动初始化,内置类型的自动初始化很好理解,类类型的初始化也就调用默认构造函数来直接初始化的。目前说的定义类型都是(类型 标志符)形式的,也只有这样。。。如果遇见指针,然后掺和上了new,他们也符合这种形式。初始化还是很重要的,使用未定义的变量会报错,使用未初始化的变量可能会导致程序错误。

另外声明和定义也需要区分下,声明用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们 声明了它的类型和名字程序中变量可以声明多次,但只能定义一次可以通过使用 extern 关键字声明变量名而不定义它

另外c++用于面向对象程序设计的话,尽量不要使用全局函数啊什么的,也就main在类外面,其他操作还是放在类里面好了,哪怕你把他定义成static。

const限定符:翻译过来就是常量,所以说可以用它限定一个变量为常值的变量,因为常量在定义后就不能被修改,所以定义时必须初始化。好了,先理解这么多好了。其他的用的时候,有错就改,语法的东西,记住就好了。

引用:其实就是变量的另外一个名字,不要理解为指针哈,引用是一种复合类型,通过在变量名前添加“&”符号来定义。复合类型是指用其他类型定义的类型。引用也必须显示初始化,当引用初始化后,只要该引用存在,它就保持绑定到初始化时 指向的对象。不可能将引用绑定到另一个对象。另外:const 引用是指向 const 对象的引用引用本身是不能再绑定到另外一个变量上的,所以他本身就是“const”的。

Typedef:typedef 可以用来定义类型的同义词

枚举:枚举的定义包括关键字 enum,其后是一个可选的枚举类型名,和一个用花括号括起来、用逗号分开的枚举成员列表。

共用体:将几种不同类型的变量存在同一段内存单元中。关键字union后跟花括号包含起来的共用体成员。

类类型:类定义了该类型的对象包含的数据 和该类型的对象可以执行的操作。标准库类型 string、istream 和 ostream 等都定 义成类。使用 class 还是 struct 关键字来定义类,仅仅影响默认的初始访问 级别。

预处理器:条件预处理,包含预处理,定义预处理。

0 0
原创粉丝点击