• 网站刚刚上线,难免有不足的地方,敬请谅解!欢迎提出宝贵意见!

  •    3年前 (2015-08-07)  程序人生 |   1 条评论  140 
    文章评分 2 次,平均分 4.5

    C语言和C++区别到底在哪?

    作为一个即用过C,也用过C++的人来说,不一定能说出它俩错综复杂的关系。小编也是略懂一二。

    简单来说:

    • C++是C发展来的。
    • C++是面向对象的语言,而C是结构化的语言(面向过程)。
    • C的大部分代码在C++上都能应用,而C++的代码在C上不能应用。(记住是大部分,不是所有)

    C语言和C++区别到底在哪?

    具体来说:

    C语言是一个结构化语言,它的重点在于算法与数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事物)控制)。C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事物)控制。所以C语言和C++的最大区别在于它们解决问题的思想方法不一样。

    C语言主要用于嵌入式领域,驱动开发等与硬件直接打交道的领域,C++可以用于应用层开发,用户界面开发等于操作系统打交道的领域。

    C语言和C++区别到底在哪?

    C++对C的“增强”,表现在几个方面:

    (1) 类型检查更为严格。

    (2) 增加了面向对象的机制。

    (3) 增加了泛型编程的机制(Template)。

    (4) 增加了异常处理。

    (5) 增加了运算符重载。

    (6) 增加了标准模板库(STL)。

    (7)增加了命名空间,避免全局命名冲突。

    C语言和C++区别到底在哪?

    与C不兼容之处

    上面说了C的大部分代码在C++上都能run的溜溜的,但是也有少数C代码会在C++中失效,或者在C++中有不同的行为。例如:隐式转换。

    1).最常见的差异之一是,C允许从void*隐式转换到其它的指针类型,但C++不允许。下列是有效的C代码:

    //从void*类型隐式转换为int*类型

    int*i=malloc(sizeof(int)*5);

    但要使其在C和C++两者皆能运作,就需要使用显式转换:

    int*i=(int*)malloc(sizeof(int)*5);

    2).在C中,多次声明一个全局变量虽然不可取,但不算错.在C++中,多次声明同一个全局变量会引发错误.

    3).另一个常见的可移植问题是,C++定义了新关键字,例如如new,class,它们在C程序中可以作为识别字(例:变量名)的。

    在C标准(C99)中去除了一些不兼容之处,也支持了一些C++的特性,如//注解,以及在代码中混合声明。不过C99也纳入几个和C++冲突的新特性(如:可变长度数组、原生复数类型和复合逐字常数)。

    4).若要混用C和C++的代码,则所有在C++中调用的C代码,必须放在 extern "C" { /* C代码 */ } 内。

    在你使用过程中遇到的问题可能比这里讲的要多,没关系,你只要记住没有一个程序员不是从问题堆里走出来的就行了。

    讲了这么多,是不是对C和C++有了更深刻的了解。两者各有长处,各有缺点,其实就看你在哪个领域去用它。

    本文属原创,拒绝转载,谢谢!

    关注微信公众平台:程序员互动联盟(coder_online),你可以第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序员互动联盟,开发人员自己的家。

    C语言和C++区别到底在哪?

     

    本文原始地址:http://www.coderonline.net/differences-between-c-and-c-where-the-hell.html

    本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/

    否则保留追究法律责任的权利!

    关于
    自由

    发表评论

    表情 格式
    1. 赞一个

      Anny 评论达人 LV.3 3年前 (2015-08-18) [0] [0]
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册