C与C++的区别

        可能很多人都知道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++语言支持重载。

重载函数就是指同一个函数名字对应着多个不同的函数实现。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值