首页 > 代码库 > 变量和基本类型
变量和基本类型
有哪些内置类型?如何关联类型和对象?
如何更改类型? 如何建立自定义类型?
一.内置类型
bool 布尔型 —— 可以将任何算数类型的任何值赋给bool对象,0值为false,其他非0值代表true
char 字符型 8
wchar_t 宽字符型 16
short 短整型 16 半个机器字长
int 整型 16 一个机器字长
long 长整型 32 1个或者2个机器字长
float 单精度浮点型 6位有效数字
double 双精度浮点型 10位有效数字
long double 扩展精度浮点型 10位有效数字
int|short|long默认为signed
1.整型的赋值
当把一个超出取值范围的值赋给一个指定类型的对象时,对于unsigned类型来说,编译器必须调整越界值来使其满足要求。即对其取模之后的值。336--80
对于unsigned类型,赋予其负数是合法的,结果是该负数对该类型的取值个数求模后的值。-1--255
对于signed类型,编译器决定实际赋的值,实际操作中跟以上类似。
2.浮点型
float类型精度只能保证6位有效数字,double至少可以保证10位。(实际中使用double类型不会出错,而且计算代价不会太大)
二.字面值常量
1 只有内置类型有字面值,没有类类型的字面值。
2 。20 十进制, 024 八进制 0x14 十六进制
3.转义字符:
\n 换行符
\t 水平制表符
\v 纵向制表符
\b 退格符
\r 回车符
\f 进纸符
\a 报警(响铃)符
\\ 反斜杠
\? 疑问号
\‘ 单引号
\" 双引号
三。变量
1.变量的初始化:
int ival(1024);//直接初始化 更方便
int ival=1024;//复制初始化
每个内置类型的对象都要初始化。
类通过构造函数进行初始化。或者使用默认构造函数。
2.变量的声明
extern int i;关键字 类型 对象名 不分配存储空间,可多次声明
四。const限定符
1.定义const对象:const int bufsize=512;
定义的时候必须初始化
2.const对象默认为文件的局部变量(extern的用法)
变量(默认为extern)定义在一个文件中,假设做了合适的声明,就可以在另外的文件中使用这个变量:
//file_1.cpp
int counter;
//file_2.cpp
extern int counter;//uses counster from file_1
++counter;
与其他变量不同,在全局作用域中声明的const变量是定义该对象的文件的局部变量,要使const变量能够在其它文件直接中被访问,必须显式的指定为extern:
file_1.cpp
extern const int bufSize=fcn();
file_2.cpp
extern const int bufSize;//uses bufSize from file_1
for(int index=0;index!=bufSize;++index)
{
...
}
五、引用(别名)
引用(通过在变量名前添加"&"定义)
引用就是对象的另一个名字.在实际程序中,引用主要用作函数的形式参数.
注意 const引用可以绑定到不同但是关联的类型的对象或者绑定到右值。
六、typedef
用来定义类型的同义词,即现有数据类型的同义词。
typedef double wages
七、枚举
关键字 可选的枚举类型名 枚举成员
enum open_modes {input ,output,append};
默认第一个为0,后面每一个比前一个大一个。
可对成员赋值,但是不能改变枚举成员的值
八、类类型
class和struct都可以定义类,仅仅影响默认的初始访问级别:
class Sale_item { (private:)默认为private public: }
struct Sale_item { (public:)默认为public private: }
九、头文件
1.头文件用于声明不用于定义
头文件包含在多个源文件中,不应该含有变量或者函数的定义。,但是可以定义类、值在编译时就确定的const对象和inline函数
2、一些const对象定义在头文件中。
当在头文件定义了const变量以后,每个包含该头文件的源文件都有了自己的const变量
3、预处理器
避免多重包含(预处理器变量)用全大写表示
#ifndef SALESITEM_H //测试是否未定义,未定义则后面的执行,直到发现endif,相反则为假,endif之间的代码都不执行
#define SALESITEM_H
.....
.....
#endif