c到c++的升级

c++是以c语言为基础,面向对象支持,类型加强,函数加强,异常处理。

1、在C++中变量可以随时定义。

2、register关键字

     在C中,register关键字请求编译器将局部变量存储于寄存器中,C语言中无法获得register变量的地址。

     在C++中编译器有自己的优化方式,不使用register也能做优化,并且C++中可以取得register变量的地址。当C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。

3、在C语言中,重复定义多个同名的全局变量是合法的,在C++中,不允许定义多个同名的全局变量。

      在C语言中,多个同名的全局变量最终会被连接到全局数据区的同一个存储空间上。

4、C++编译器对const常量的处理

     a.当碰见常量声明的时候,在符号表中放入该常量

     b.编译过程中若发现使用该常量则直接以符号表中的值替换。

     c.编译过程中若发现对const常量使用了extern或者&操作符,则给对应的常量分配空间。

    注意:C++中可能为const常量分配空间,但是不会使用存储空间的值。

    如:const int c = 0;

           int *p = (int *)&c;

           *p = 3;

           printf("c= %d\n", c);

    输出结果为0;

    而在C语言中,const变量是只读变量,有自己的存储空间,值可以被上面的例子修改。

5、在C语言中,struct是变量的集合, 在C++中,struct是一个新类型,和int,char等类型一样

6、在C++中所有的变量和函数都必须有类型声明,不能默认。

     在C语言中,函数f()如果不写成f(void),则可以接收任意多的参数。

 

   int f() 和int f (void) 在c语言中区别很大,而在c++中一样。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值