C++是兼容C的吗?

我可以直接学C++,不学C吗????这样有没有什么弊端

  它们只是语法具有相似性,并没有什么本质的关联,也并不完全兼容
  C语言和C++语言语法具有相似性,但是差异还是比较大的:
  1 关键字不一样。C++具有更多的关键字。而c语言的关键字要少很多。
  2 相同的关键字解释也不一定相同。比如struct解释就不一样。C++中struct实际上是按照类(也就是class)来解释的,可以有成员函数、成员变量、构造函数、析构函数等等。C语言里面的struct是一种数据结构,不存在成员函数或者构造函数等等东西。
  3 C++拥有域名空间、模板等更加先进的语法特征,而C语言不具备这些。
  4 使用的编译器也不相同。在linux中,C++使用的是g++编译器,而C是用的gcc编译器。如果将C++代码传入gcc编译器,它会调用g++去编译。如果你用g++编译c语言代码,它会按照c++的方式解释代码,这样可能一些结构体的行为会和你预期的行为不一致。
  5 他们使用的范围不同。c++一般是面向应用级别的程序开发,c语言则是面向内核或者驱动级别的开发。c语言现在一般没有用于应用开发的了。

  6 使用的库也不一样。C++可以使用C的库,但是C语言不一定能够使用C++的库,除非C++的库接口是按照C语言的规范编写的。
  7 C语言是一种面向过程开发的语言,核心是函数和数据结构。C++是一种面向对象开发的语言,核心是类和复用。
  总之他们并不相同,也不能混为一谈。你可以直接学习C++而跳过C语言,这样反而对于你理解C++的思想有好处。你也可以单独学习C语言,而不学C++,如果你只需要做内核或者做驱动。千万不能因为一些基础的关键字和语法特征相似而认为他们兼容。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-18
C++确实兼容C,但是不先学C直接进入C++,相信我你会很痛苦的!很多底层都是用的C语言,特别是单片机类的电子产品,而C++一般用在应用层,如果你有了C的基础那么学其他的语言相较而言会轻松很多,希望能帮到你追问

我想做应用,以前做过.netweb开发,想转C++,不知道要学习什么技术啊

追答

想的再多都没用,空谈误国,实干兴邦,语言只是一种工具,就像楼上说的很对,就算你能看懂所有语句,但是不一定就能搞懂,我是用C做单片机开发的,C语言到没什么,了解各种芯片和各种协议才是重点,再说了,你想做应用,应用的代码量是非常大的,不过好在国内很少有公司是重新开发,一般是在已有的引擎或模块上面修修改改而已,最好的建议就是找一份C++的工作,边工作边学习。

本回答被提问者采纳
第2个回答  2013-09-18
理论上可以,可是现实的工作并不是局限于开发语言本身的。需要具体应用的知识。追问

做应用开发,需要什么技术啊???,求给一条路

追答

比如说,windows下做客户端软件,首先mfc你是要熟悉的。如果在具体点,比方你做个wifi分享的客户端,那么wifi分享先关的api你也是要熟悉的,总之软件开发可并不是简单的C++语法就能解决的。c++只是个工具,而已。

第3个回答  2013-09-18
C++是在C基础上发展起来的,所以C是C++的基础,不建议跳过。
不过你想跳的话就跳吧,出现问题客服就行。
第4个回答  2015-10-28
。。。大部分的 C++ 编译器都是可以编译 C 语言程序的。。。只要你包含了 stdio.h
相似回答