c与c++的区别...
时间:2010-08-12 来源:CrazyProgram_SZ
可能很多人都知道C语言是面向过程的,C++语言是面向对象的,但我要说的不是这个。
C和C++至少在以下3个方面是不同的:
1、C语言不支持设置函数参数默认值,而C++语言允许在函数被说明或者定义时给一个或多个参数指定默认值。好处就是能够给函数调用带来方便性和灵活性。例如:
int fun(int iVal1, int iVal2=10, int iVal3=20);
该函数中的3个参数中的两个参数设置了默认值。
但在设置和使用参数默认值时应该注意下面几点:
1.1、指定默认值时要从参数表的右端开始,在指定了默认值的参数的右边不允许出现没有指定默认值的参数。(为什么这样还要进一步研究,我估计是和编译器有关,编译器处理参数一般都是从右到左入栈的)
1.2、在函数调用时,给定的实参值将取代参数的默认值,没有给定实参值将使用参数的默认值。
1.3、如果一个函数需要说明时,默认的参数值应设置在函数的说明中,而不是函数的定义中。当没有函数说明时,默认的参数值设置在函数的定义中。
1.4、在给参数设置默认值时,不仅可以是数值,也可以使表达式。默认值一般是全局量,也可以使函数,但不可以是局部变量。因为默认参数的函数是在编译时确定的,而局部变量在编译时无法确定。
2、函数的调用方式:在C语言中,函数调用都采用传值调用方式。在C++语言中,除了可用传值调用方式外还可采用引用调用方式。
函数的调用过程本质上是对栈空间的操作过程,因为调用函数是使用栈空间来保存信息的。函数调用过程大致描述如下:
2.1、建立被调用函数的栈空间。
2.2、保护调用函数的运行状态和返回地址。
2.3、传递函数实参给形参。
2.4、执行被调函数的函数体内语句。
2.5、将控制权或返回值转交给调用函数。
3、重载:C语言不支持重载,而C++语言支持重载。
重载函数就是指同一个函数名字对应着多个不同的函数实现。