Linux下编写C++实例程序(一)
下周考C++了,敲程序熟悉一下子,记下来,用惯了linux,不想在windows中用VC6.0了,直接使用vim编写,利用g++编译连接。源程序直接放到VC6.0中也能用!
实例1
设某次体育比赛的结果有4中可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序顺序输出这4中情况。
知识点:主要是练习枚举类型enum的使用
编译运行结果
实例2
将两个整数交换次序后输出。
知识点:值传递是指当发生函数调用时,给形参来分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参)。这一过程是参数值的单向传递关系,一旦形参获得了值便与实参脱离关系,此后无论形参发生了什么样的改变,都不会影响到实参。
编译运行结果
分析:从上面的运行结果可以看出,并没有达到交换的目的。这是因为,采用的是值传递,函数调用时传递的是实参的值,是单向传递过程。形参值的改变对实参值不起作用。
实例3
利用引用传递完成实例2功能
知识点:① 声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象。② 一旦一个引用被初始化后,就不能改为指向其他对象。③ 用引用作为形参,在函数调用时发生的参数传递,称为引用传递。
编译运行结果
可见,通过引用传递实现了数据交换的功能。
实例4
值传递与引用传递的比较。
分析:子函数 fiddle 的第一个参数 in1 是普通的 int型,被调用时传递的是实参v1的值,第二个参数in2是引用,被调用时由实参v2初始化后称为v2的一个别名。于是在子函数中对参数 in1 的改变不影响实参,而对形参in2的改变实质上就是对主函数中变量 v2的改变。因而返回主函数后,v1值没有变化,v2值发生了变化。
编译运行结果