background image

int k;
int y;
x=y+10; //oops!
本例中变量 y 没有事先初始化,所以 x 可能取得任何值。例外的情况是全局变量和用 static
修饰声明的变量总是初始化为 0。而所有其它变量在初始化或赋值之前包含随机值。变量
名可以混合大写、小写字母和数字与下划线(_),但不能包含空格和其它特殊字符。变量
名必须以字母或下划线开始。一般来说,变量名以下划线或双下划线开始不好。变量名允
许的最大长度随编译器的不同而不同。如果变量名保持在 32 个字符以下,则绝对安全。实
际中,任何超过 20 个字符的变量名都是不实用的。
下例是有效变量名的例子:
int aVeryLongVariableName;// a long variable name
int my_variable;// a variable with an underscore
int_ x;// OK,but not advisedint X;// uppercase variable name
int Labe12;// a variable name containing a number
int GetItemsInContainer(); // thanks Pete!

 

说明 C++中的变量名是考虑大小写的,下列变量是不同的:int XPos;int xpos;如果你原先
所用语言不考虑大小写(如 Pascal),则开始接触考虑大小写的语言可能不太适应。
C++数据类型

 

新术语 C++数据类型定义编译器在内存中存放信息的方式。在有些编程语言中,可以向变
量赋予任何数值类型。例如,下面是 BASIC 代码的例子:x = 1;x = 1000;x = 3.14;x = 
457000;在 BASIC 中,翻译器能考虑根据数字长度和类型分配空间。而在 C++,则必须先
声明变量类型再使用变量:int x1 = 1;int x = 1000;float y = 3.14;long z = 457000;这样,编译
器就可以进行类型检查,确保程序运行时一切顺利。数据类型使用不当会导致编译错误或
警告,以便分析和纠正之后再运行。有些数据类型有带符号和无符号两种。带符号
(signed)数据类型可以包含正数和负数,而无符号(unsigned)数据类型只能包含正数。表
1.1 列出了 C++中的数据类型、所要内存量和可能的取值范围。
表 1.1C++数据类型(32 位程序)

 

 

数据类型 字节 数取值范围
char 1 -128 到 126
unsigned char 1 0 到 255
short 2 -32,768 到 32,767
unsigned short 2 0 到 65,535
long 4 -2,147,483,648 到 2,147,483,648
unsigned long 4 0 到 4,294,967,295
int 4 同 long
unsigned int 4 同 unsigned long
float 4 1.2E-38 到 3.4E381
double 8 2.2E-308 到 1.8E3082
bool 1 true 或 false
从上表可以看出,int 与 long 相同。那么,为什么 C++还要区分这两种数据类型呢?实际上
这是个遗留问题。在 16 位编程环境中,int 要求 2 个字节而 long 要求 4 个字节。而在 32 位
编程环境中,这两种数据都用 4 个字节存放。C++Builder 只生成 32 位程序,所以 int 与
long

 

相同。说明 在 C++ Builder 和 BorLand C++ 5.0 中,Bool 是个真正的数据类型。有些 C+

+编译器有 Bool 关键字,则 Bool 不是个真正的数据类型。有时 Bool 只是个 typedef,使