文档详情

第五章 C、C++语言变量和常量.doc

发布:2016-03-24约1.75万字共30页下载文档
文本预览下载声明
第五章 变量和常量 5.1 从类型到变量 5.1.1 公孙龙的“白马非马”  故事是春秋时的公孙龙先生说的。 城门上告示:“马匹不得入城”。公孙龙同志骑白马而来,遭拒入。公孙龙一脸正色:“告示上写的是‘马’,而我骑的是‘白马’,难道 ‘马’等于 ‘白马’吗?” 守门士兵觉得白马还真不是马,于是放行。 依公孙龙先生的理论认为:如果白马是马,黑马也是马,那么岂不白马等于黑马,所以,不能说白马是马。“白马非马”是中国哲学史上的一桩公案。不过,若是我们从程序的角度上说,可以认为:马在这里表示一种类型,而白马,黑马它们的类型都是马。 白马,黑马具有相同的“数据类型”,但它们都相对独立的个体。从这点说,别说有白黑之分,就算同样是白马,这一匹和哪一匹白马,也是相对独立的个体。 在程序中,“类型”和“变量”的关系正是“马”和“白马”的关系。 如果C或C++有这种数据类型: Horse,那么,定义一匹“白马”的变量应该这样: Horse AWhiteHorse; 以后我们说不定真的有机会自已定义Horse,不过现在,我们在上一章的学的数据类型是: char,int,bool 等等。 假设我们需发使用一个有关年龄的变量,在C或C++中是这样定义的: int age;   现在让我们来事先建立一个空的工程,随着本章课程的进展,我们需要不断地在工程中加入零星的代码,及时实践。   仍然是一个空的控件台程序。方法是……以前我们讲过,忘了就看前面章节吧。 代码文件Unit1.cpp中,手工加入以下的黑体部分: //--------------------------------------------------------------------------- #include iostream.h #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[])] { ? getchar(); ? return 0; } //--------------------------------------------------------------------------- 5.1.2 定义变量 语法:   数据类型 变量名;   “张三”既可以指张三这个人,也可以是张三的名字。同样,上面的“变量名”,其实也就是变量本身。   举上一节的例子:   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; 一起定义多个同类型变量的方法是:在不同变量之间以逗号(,)分隔,最后仍以分号(;)结束。   让我们来试试变量定义,另外,我们还要趁此机会,看看一个变量在仅仅进行定义之后,它的值会是什么。 继续上一小节的代码。仍然是加入黑体部分,当然 // 及其后面的内容是注释,你可以不输入。 ...... int main(int argc, char* argv[])] { ?/////////////////定义变量////////////////////////////////////////////////// ? //以下定义三个变量:a,b,c ? int a;?????? ? double b,c;?   ? //a,b,c仅仅被定义,它的值会是什么?我们用 cout 输出三个变量: ? cout a = a b = b c = c endl;   ? getchar(); ? return 0; }   最好先保存代码文件和工程文件。然后按F9运行。以下是笔者机器得到结果。   a 是1,b和c都像天文数字?嗯,从这里我们学到一个C,C++编程极其重要知识:未初始化的变量,它的值将是未确定的。所谓“未初始化”,就是指这个变量只有定义代码,而没有赋值。 (立即重复执行这段代码,得到结果可能都一样,但这并不说明
显示全部
相似文档