变量名,即变量的标识符,可以由字符,数字,以及下划线来组成。他必须以字符或者下划线来开头,并且区分大小写。
语言本身没有对变量名做什么限制。但是为了用户着想,他不应过长。
c++保留了一些词用作关键字。关键字标识符不能在作为标识符在程序中使用了。
对于命名对象有很多已经普遍接受的习惯。主要考虑的因素的是程序的可读性。
第一:对象的命名一般用小写。
第二:标识符通常用容易记忆的名字。
第三:对于多词构成的标识符一般在词的中间加上下划线。
对象的定义:
一个简单的对象的定义由一个类型指示符后面加上一个名字构成,以分号结束。
例如: int aaaaa;
当同类型的多个标识符被定义的时候,我们可以在类型指示符后面用逗号隔开。
一个简单的定义指定了变量的类型和标识符。他并不提供初始值。
如果一个变量是在全局域(globe scope)中定义的,那么系统会保证给他一个初始值0。如果一个变量是在一个局部域中定义的,或者通过一个new 动态分配的,那么系统不会向它提供初始值0。这些对象被称为未初始化(uninitialized),未初始化的对象不是没有值,而是对象的值未被定义。
因为使用未初始化的对象是个很常见的  错误,并且很难被发现。所以建议为每个定义的对象进行初始化。
类机制通过缺省构造函数提供了类对象的自动初始化。
例如:
int  main()
{
int val;////////未被初始化的值。
string  project;//////通过string类的缺省的构造函数进行了初始化。
}


val是一个未被初始化的局部变量。
但是project是一个已经被初始化的类对象——被string类缺省的构造函数自动初始化。
初始化一个值可以在对象定义的时候进行。
c++支持两种形式的初始化。
第一种是使用赋值符号的现实的操作。
如:
int val=111;
string  project="ssssss";
隐式形式中,初始化值被放在括号中。
int val(111);
string project("sssssss");
在对象的定义之中,当对象的标识符在定义中出现后,对象名马上就是可见的了。因此用对象初始化他自己是合法的,只是这样做不是明智的。
例如:int val=val;///////合法,但是不是明智的。
另外,每种内置数据类型都支持一种特殊的构造函数。可将对象初始化为0。
/////设置val为0。设置dval为0.0。
int val =int();
double dval=double();
下列的定义中:
int()
vector <int>ival(10);
函数int()自动被应用到ival包含的10个元素上。
对象可以用任意复杂的表达式来初始化,也可以用返回值