2008-01-08

The First Chapter :Some basic knowledge of Programming

首先,介绍部分C++的预定义字:

C++ defines the following reserved words:




此外,C++也能识别C类型的注释:“ /* ……*/

在C++中,它自身定义的注释为“//……”

-------------------------------------------------------------
定义:


  identifier(标识符)是一个用户自定义的名称,比如变量名。标识符不可以与以上reserved words同名。


  C string literal(C字符串直接量)是表示可变数量字符的文字值,用""括起来,如"This is a Hello world test."


  block(块)是与语句有同样作用的代码块。



数据类型:


  C++规定了三种基本的数据类型:



  • 整型(integer):用来表示整数值分别有short,int,long.在32位CPU的计算机上long和int长度相同.

  • 浮点(float):用来表示小数值,有float,double,long double.

  • 字符(character):用来存储字符.

  具体信息如下:



char :字符类型
int : 整型
float :单精度实型(浮点型)
double : 双精度实型
unsigned : 无符号类型
signed : 有符号类型




bool : 布尔类型
  true : 布尔类型的真值
  false : 布尔类型的假值
void : 无类型
 
sizeof : 取得指定类型的所占用的范围
typedef : 为某种类型取一别名



--------------------------------
类型标识      类型说明   长度 (字节)     范围       备注
char        字符型    1         -128 ~ 127     -27 ~ (27 -1)
unsigned char    无符字符型  1          0 ~ 255       0 ~ (28 -1)
short int       短整型    2         -32768 ~ 32767    -215 ~ (215 - 1)
unsigned short int   无符短整型 2          0 ~ 65535      0 ~ (216 - 1)
int          整型    4      -2147483648 ~ 2147483647  -231 ~ (231 - 1)
unsigned int     无符整型   4         0 ~ 4294967295    0 ~ (232-1)
float       实型(单精度)  4      -1.18*1038 ~ 3.40*1038    7位有效位
double      实型(双精度)  8     -2.23*10308 ~ 1.79*108308   15位有效位
long double    实型(长双精度) 10     -3.37*104932 ~ 1.18*104932  19位有效位
---------------------------------------
注:
  unsigned 用于修饰 int 和 char 类型。它使int 或 char 类型成为无符号类型。
  signed 是 unsigned 反义词,如 signed int 表示有符号类型,不过signed可以省略,所以上面列出char,short int,int 都是有符号类型。


  由于32位计算机下long int 同int同样是4个字节,所以一般省略直接写int。

布尔型(bool)和无类型(void)

除字符型,整型,实型以外,布尔型和无类型也是较常用的两种数据类型。
 
布尔型(bool)
布尔类型是C++的内容,C语言没有这一类型。
布尔类型的数据只有两种值:true(真) 数值为非0或 false(假)数值为0

无类型(void)
这个类型比较怪“无”类型。是的,没有类型的类型。或者我们这样认为比较好接受:在不需要明确指定类型的时候,我们可能使用 void 来表示。

为了容易表示,我们用下面这段代码来演示这几种数据类型:



#include<iostream>


#include <limits>


using namespace std;



int main()


{


short SHORT;


unsigned short USGSHORT;


int INT;


unsigned int USGINT;


float FLOAT;


double DOUBLE;


long double LONGDOUBLE;



cout << "\n类型\t\t\t字节数(bytes)\t精度\t最大值\t\t最小值";


cout << "\nshort\t\t\t" << sizeof(SHORT);


cout<<"\t\t"<<numeric_limits<short>::digits10;


cout<<"\t"<<numeric_limits<short>::max();


cout<<"\t\t"<<numeric_limits<short>::min();


cout << "\nunsigned short\t\t" << sizeof(USGSHORT);


cout<<"\t\t"<<numeric_limits<unsigned short>::digits10;


cout<<"\t"<<numeric_limits<unsigned short>::max();


cout<<"\t\t"<<numeric_limits<unsigned short>::min();


cout << "\nint\t\t\t" << sizeof(INT);


cout<<"\t\t"<<numeric_limits<int>::digits10;


cout<<"\t"<<numeric_limits<int>::max();


cout<<"\t"<<numeric_limits<int>::min();


cout << "\nunsigned int\t\t" << sizeof(USGINT);


cout<<"\t\t"<<numeric_limits<unsigned int>::digits10;


cout<<"\t"<<numeric_limits<unsigned int>::max();


cout<<"\t"<<numeric_limits<unsigned int>::min();


cout << "\nfloat\t\t\t" << sizeof(FLOAT);


cout<<"\t\t"<<numeric_limits<float>::digits10;


cout<<"\t"<<numeric_limits<float>::max();


cout<<"\t"<<numeric_limits<float>::min();


cout << "\ndouble\t\t\t" << sizeof(DOUBLE);


cout<<"\t\t"<<numeric_limits<double>::digits10;


cout<<"\t"<<numeric_limits<double>::max();


cout<<"\t"<<numeric_limits<double>::min();


cout << "\nlong double\t\t" << sizeof(LONGDOUBLE);


cout<<"\t\t"<<numeric_limits<long double>::digits10;


cout<<"\t"<<numeric_limits<long double>::max();


cout<<"\t"<<numeric_limits<long double>::min();


cout <<endl;
return 0;}


注意:
其中\t等价与你在VC里面按TAB键的效果
  • numeric_limits<long double>::min(); 是返回该类型可表示最小值的,
     numeric_limits<double>::digits10; 是返回该类型精度的。
  • sizeof 的使用
     用法:
     sizeof(数据类型)
     sizeof(变量)
     可以返回数据类型占用的字节数。

  • 运行结果如下:



    没有评论: