现在的位置: 首页 > 综合 > 正文

C & C++,Java study

2013年08月03日 ⁄ 综合 ⁄ 共 1325字 ⁄ 字号 评论关闭

I think there are 3 main points to learn c++ :
pointer
c++ library
oop of c++

To me the most confused thing is to distinguish which is c feature and which is c++ feature.
Please look this as reference:

http://www.cplusplus.com/

http://www.cplusplus.com/reference/clibrary/

区分C++和C是一个很重要的问题,我用了好几年才搞清楚 ^^
但是仍然有很多人至今不清楚 ... ..
因为C++是兼容C的,所以当我在google或者百度搜索一个C++的问题的时候
总是有很多人给出很多C的解决方案。英文的论坛我没看,反正中文的论坛里的文章很多是这样的,
打着c++的旗号写c的代码。
之所以产生这种问题,我想原因之一是c++程序员自然都是从学c开始的,
另外一个原因可能也是因为很多实际的项目里面也是c++和c共存的,
毕竟很多项目是在没有c++的时候就已经有了,
后来有了c++,但是也没有把所有的c代码改成c++的,
一个是因为没必要,另外一个也是因为代价很大。
再有一个原因可能是很多在c++论坛里面发代码的程序员多是通信或者嵌入式或者自动控制领域的程序员,
在这些领域c还是有优势的。
一开始我没意识到,经过很多的纠结,后来终于知道了,原来C++和C是不同地
对于同样一个问题,存在C和C++的两个方案。

比如控制台输入输出
C是 sprintf scanf,
c++是cin, cout

内存申请和释放
c是malloc和free
c++是new和delete

字符串c是char*
c++是string

等等

个人还是喜欢c++。
面向对象的库就是简单。而同样一个问题c则比较麻烦,
最明显的例子是c里面没有string,想要string的时候要用char[] 或者char*

c++的特点是对数据类型进行了高级封装,所以很简便,c的特点是很多底层操作,所以需要底层操作的时候显然有优势。
c++这样的高级语言基本不用关心数据字节级别的操作,可是c语言能把一个bite按照8个bit来操作,真有点一分钱分八瓣用的味道,
更有甚者还有一个叫什么union的东东好像,一个字节甚至能被两个东西同时占用
对于内存受限系统显然要用c,但是现在内存越来越大了,所以大多数情况不用这么精打细算了。
但是像通信这样的领域c还是很有必要的,因为通信的内容就是一串字节流,对于处理字节见长的c来说还是有用武之地的。
如果学网站建设其实精通c语言其不是必要的。
c语言和php好像语言的两个极端,一个是把所有的东西都弄到array里面,一个是把所有的东西都精确到字节。
指针是无论学习c还是c++都要学的,c++里面的指针应用会比c少一点,因为很多c的基本语法也是以指针实现的,比如string是char*。
c++的面向对象学起来还是有点意思的,
不像Java,有点乱,很杂,而且有些东西根本不好用,比如Java的GUI,既难看有难用。
不过学习设计模式的话,Java应该不错,有机会的话想一下了。
还有Java的框架,也想抽时间学一下。
没有检查,有错误请指正!

抱歉!评论已关闭.