文档介绍:第五章变量和常量
从类型到变量
  公孙龙的“白马非马”
  定义变量
  如何为变量命名
  如何初始化变量
    什么时候需要给变量初始化?
    初始化变量的两个时机
    通过计算得到初始值
    变量的取值范围
变量与内存地址
常量
  几种数据类型常数的表达方法
    整型常数的表达
    实型常数的表达
    字符常量的表达
    字符串常量
  用宏表示常数
  常量定义
  枚举常量
    为什么需要枚举类型
    定义枚举类型的基本语法
    关于枚举常量的输出效果
从类型到变量
公孙龙的“白马非马”
故事是春秋时的公孙龙先生说的。
城门上告示:“马匹不得入城”。公孙龙同志骑白马而来,遭拒入。公孙龙一脸正色:“告示上写的是‘马’,而我骑的是‘白马’,难道‘马’等于‘白马’吗?”
守门士兵觉得白马还真不是马,于是放行。
依公孙龙先生的理论认为:如果白马是马,黑马也是马,那么岂不白马等于黑马,所以,不能说白马是马。“白马非马”是中国哲学史上的一桩公案。不过,若是我们从程序的角度上说,可以认为:马在这里表示一种类型,而白马,黑马它们的类型都是马。
白马,黑马具有相同的“数据类型”,但它们都相对独立的个体。从这点说,别说有白黑之分,就算同样是白马,这一匹和哪一匹白马,也是相对独立的个体。
在程序中,“类型”和“变量”的关系正是“马”和“白马”的关系。
如果C或C++有这种数据类型: Horse,那么,定义一匹“白马”的变量应该这样:
Horse AWhiteHorse;
以后我们说不定真的有机会自已定义Horse,不过现在,我们在上一章的学的数据类型是:
char,int,bool 等等。
假设我们需发使用一个有关年龄的变量,在C或C++中是这样定义的:
int age;
现在让我们来事先建立一个空的工程,随着本章课程的进展,我们需要不断地在工程中加入零星的代码,及时实践。
仍然是一个空的控件台程序。方法是……以前我们讲过,忘了就看前面章节吧。
,手工加入以下的黑体部分:
//---------------------------------------------------------------------------
#include <>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])]
{
  getchar();
  return 0;
}
//---------------------------------------------------------------------------
定义变量
语法:
数据类型变量名;
“张三”既可以指张三这个人,也可以是张三的名字。同样,上面的“变量名”,其实也就是变量本身。
举上一节的例子:
int age;
其中,int 是数据类型(整型),而 age 是变量名,更多的时候,我们就说是变量 age。最后是一人分号。它表示定义一变量在C或C++里一句完整的语句。因为C++的语言总是以分号结束。
如果要声明一个字符类型变量:
char letter;
声明一个bool类型的变量:
bool do_u_love_me;
其它类型,除了void不能直接定义一个变量以外,格式都是一样的。
void avoid; //错!void 类型无法直接定义一个变量。
有时同一时候同一数据类型需要多个变量,此时可以分别定义,也可以一起定义:
int a;
int b;
int c;
下面采用一起定义,会更省事:
int a,b,c;
一起定义多个同类型变量的方法是:在不同变量之间以逗号(,)分隔,最后仍以分号(;)结束。
让我们来试试变量定义,另外,我们还要趁此机会,看看一个变量在仅仅进行定义之后,它的值会是什么。
继