c与c++的区别(从代码角度来看)

 首先说说我写这篇日志的目的:对于大部分编程的人来说学c语言应该都从vc的(当然也有用tc的),但我觉得这里面有很大一部分朋友并不知道其实你一直用c++的编译器去编c和运行c语言的代码。当然c++是支持绝大部分的c的,但它们是不同的,之所以你能用那些编写和运行c语言代码没有发现有什么不对之处(其实你偶尔也会发现有时你的c代码运行时会怪怪的。)

         1) 在C语言中,初始化一个字符数组的方式很容易产生错误,就是数组很可能没有足
够的空间存放结尾的NULL字符.C++于对此此了一些改进、像char b[3] ="Bob"这样的表达式
被认为是一个错误,但它在C语言中却是合法的。
        2) 类型转换既可以写成像float(i)这样看上去更顺眼的形式,也可以写成(float)i这样
稍显怪异的C语言风格的形式.
      C++允许一个常量整数来定义数组的人小
          connst int size=128;
          char a[size];
    这在C++中是允许的但在C语言中却是错误的.
     3)c++ 声明可以穿插于语句之间.在C语言中,一个语句块中所有的声明都必须放在所有
语句的前面.C++去掉了达个专横的限制,做得非常好当然这种做法也会引起与C语言的
不兼容,那为什么不进行得彻底一些,为恐怖的C语言声明语法提供一种更简单的替代方案?
     4)在C++中,用户代码不能调用mian()函数,但在C语言中却是允许的(不过这种情
况极为罕见)
     5)完整的函教原型声明在C++中是必须的,但在C语言中却没这么严格.
     6)在C++中由typedef定义的名字不能与已有的结构标签冲突,但在C语言中却是充
许的(它们分属不同的名命空间).
     7)当void*指针赋值给另一个类型的指针时,C++规定必须进行强制类型转换,但在C
语言中却无必要。
     8)在C++中,声明可以出现在语句可以出现的任何地方.在C语言中的代码块中,所
有的声明必须出现在所有语句的前面.
     9)在C++,字符常量的类型是char,但在C语言中,它们的类型是inL也就是说,
在C++中,sizeof('a')的结果是1.而在c语言中,它的值要大一些。

       希望这些对大家有些用处,另:以上9条是摘自《c专家编程》的。个人觉得这本书还可以,能够解决学c语言中遇到的很多难晚理解的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值