基本语言

c++是静态类型语言(static type),编译时执行类型检查。所以,程序中使用某个名字前,必须先告知编译器该名字的类型。

除了内置数据类型(int等),允许用类自定义数据类型,称为“类类型”(class type)。

一、基本内置类型

1.arithmetic type:整数、浮点数、字符、布尔值、void。存储空间与机器有关(java的存储空间固定)。

1)整型integral type:整数、字符、布尔值。字符类型包括char和wchar_t:char为单字节,wchar_t为扩展字符集。整数类型包括short、int和long。 bool类型表示true或false,可将任何非0算术值赋给bool类型表示true。

   除bool类型外,整型均有无符号和带符号类型两种,默认为signed,无符号的前加unsigned。当将一个超出取值范围的值赋给指定类型的对象时,编译器会调整越界值使其满足要求。unsigned类型会对可能取值求模,取所得值。负数总是超出unsigned的取值范围。如将-1给8位unsigned char,结果为255(-1对256求模后得255)。

   整型可用于计数,使用unsigned可避免值越界导致结果为负。算术运算很少用short,可能隐含赋值越界错误,若机器截断wrap around,会产生很大的负数。char主要用于存储字符而不用于计算。所以,大部分应用int进行整型计算,long计算代价远高于int。

2)浮点型:float单精度(32位)、double双精度(64位)、long double扩展精度(96或128位)。float有隐式的精度损失,double计算代价相对于float可忽略(有些机器double计算甚至比float快),long double精度常没必要,运行代价高。

3)literal constant:只能用值称呼,且值不能修改,有对应的类型(如42.1是double型)。只有内置类型有leteral constant,类类型和标准库类型均没有。整型字面值可用8,10,16进制表示,类型为int或long(无short),后可加L,U。浮点字面值可用十进制或科学计数法表示,默认类型为double,数值后加F/f表示单精度,加l/L表示扩展精度。布尔字面值为true、false。字符型字面值加单引号(L'a')。

2.const限定符:提高程序的可读性、可维护性。

  定义时必须初始化,定义后不能被修改。默认为文件的内部变量,若指定const变量为extern,可以在整个程序访问const对象。9(非const变量默认为extern)。

3.引用reference:是一种compound type(复合类型指 用其他类型定义的类型),主要用作形参。

   通过在变量名前加&来定义,每种引用类型都关联到某一其它类型,不能定义引用类型的引用。必须用 与该引用同类型的对象初始化。

   只是它绑定对象的别名,对引用的所有操作实际作用于该引用绑定的对象。

特:const引用---指向const对象的引用。不能用非const引用指向const对象。const引用可初始化为不同类型的对象或初始化为右值。eg. const int &i = 1;  double a = 1.01; const int r = a;(编译器:int temp = a; const int r =temp;)

4.typedef:定义类型的同义词。

   枚举:enum name1{eumerator1=0,enumerator2=0,....};枚举成员为常量,成员值可以不唯一。枚举类型对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的对象进行。

5.类类型:

从操作开始设计类---每个类都定义了接口interface和实现implementation,接口由操作组成,实现包括数据和类需要但不供一般性使用的函数;

类定义:class className{public:...  private:.....}; 成员默认为private。  struct structName{public: .... private:....};成员默认为public。

6.头文件.h:由多个文件组成的程序中,将名字的使用和声明连接起来。

  包含类定义、extern变量的声明、函数声明。原则:头文件不能太大,否则编译时间长;头文件中的声明在逻辑上应该适于放在一起。

  因为头文件包含在多个源文件中,故不应该含有变量或函数的定义。只有三类定义:类、const对象、inline函数。

  在源文件中,用#include包含头文件。#include  <standard_header>  #include "my_file.h"

  头文件可以多次包含在同一源文件中。为避免多重包含,用预处理器变量(大写字母)。

  #ifndef PREVARNAME  测试预处理器变量(变量名唯一)是否未定义。若已定义,跳过该指示到endif之间的代码。

  #define PREVARNAME

  #endif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值