新手须知 C、C++和VC++之间的区别
本文目地
本文介绍的是C、C++、VC++ 三者之间的区别,也许作为初学者来说,会很容易混淆。希望通过本文的介绍,能够给你带来帮助。
C语言
C语言是一种古老而又经久不衰的计算机程序设计语言,大约诞生于上个世纪60年代。由于它的设计有很多优点,多年以来深受广大程序设计人员的喜爱,并逐渐 淘汰了很多其它程序设计语言。我们平时使用的大多数软件都是用C语言开发的。
很多后来出现的一些语言也沿用了很多它的东西。C语言的编程方式是一种称为面 向过程的开发方式。也就是说,解决问题的时候,程序员需要思考计算机应该如何一步一步完成这个问题,然后将相应过程转化为代码。
当软件变得越来越复杂,代码越来越长的时候,一个人的脑力有限,用面向过程的方法很难开发,往往写着后面的,就忘了前面写 了什么了。而且复杂软件往往需要很多人协同开发,更加大了开发难度。一种称为面向对象的软件开发方法应运而生。面向对象的思想用几句话很难说清楚。
C++的出现
国内的计算机教材在讲到这里的时候往往也都说不清楚什么叫面向对象。这个词语也许只能意会不能言传吧。需要开发过一些相关软件才能领会。这里还是不具体说了吧。 C语言不是面向对象的,而程序员又离不开C语言,因此有人在C语言的基础上添加了面向对象的功能,就是C++.同时,C++修改了C语言中一些不方便的规 定,使C语言用起来更方便了。
这里需要注意两点
1.谭浩强那本著名的<<c程序设计>>后面用了几张篇幅简要介绍了C++,但是他讲的C++只是上面提到的修改C语言不方便的规定,涉及到面向对象的内容一点没有。
C和C++的编程思想不一样
2.C++是在C语言的基础上发展来的,但是并不是C++比C语言高级,两者的编程思想不一样,应用的领域也不一样。在各自的领域,谁也不能替代谁。
Visual C++的诞生
windows操作系统出现以后,开发windows平台的图形界面程序成为一大难题。用C语言虽然能开发,但是程序员要花费很大的精力处理图形界面。同时,windows平台图形界面的程序又都有很多相似点。为了解放程序员,让他们把精力主要放在程序功能上,而不是放在图形界面上,microsoft公 司推出了visual系列软件开发环境,包括为C++程序员提供的Visual C++.程序员能用C++语言在其上开发图形界面的软件。微软随Visual C++提供了很多用于显示Windows界面的库函数。可以说Visual C++就是C++加上windows图形界面。
Visual C++假设用户已掌握C++
那是不是想学C++和C语言的话,只要去学Visual C++就行了呢?大错特错!市面上任何一本Visual C++教材都是假设用户已经掌握了C++语言,重点在讲和Windows程序设计相关的东西,而且往往都要讲MFC.没有C++基础,根本无法理解MFC 的任何东西。
很多人急功近利,觉得花费半年甚至一年时间学习C++.连个图形界面的程序都开发不出来,太不划算。这种想法也是错误的。世界上的软件只有一部分具有图形 界面,运行在Windows平台,需要用Visual C++开发。学好了C++,即使不学Visual C++,也是大有作为的。
Visual C++做了很多封装
还有很多人,要学C++或者C语言,先整个Visual C++装上。其实这是一种误区。Visual C++操作复杂,而且帮助开发者做了很多事情。对于初学者来说,操作复杂的话要花很多时间用在掌握Visual C++的用法上。帮开发者做的那些事情,往往是初学者需要了解的,自己亲手做一下,对学习更有好处。
再说了,大家装的往往都是非法版本,这种事情不是人家不追究就万事大吉了。自己良心有愧啊。大家学软件还不是为了挣钱,可是自己却不尊重前辈的劳动成果,真是无耻啊。
本人建议C语言和C++的初学者,上机练习最好用自己喜欢的代码编辑器写好后用GCC编译,对以后的深入学习大有好处。还是那句话,理论加实践才是最好的老师。
注:本文转自:http://developer.51cto.com/art/201107/275818.htm
新手须知 C、C++和VC++之间的区别的更多相关文章
- LaTeX 有哪些「新手须知」的内容?
孟晨 ,在 LaTeX 话题下写错 LaTeX 名字的,一律… 陈硕等 137 人赞同 这是个好问题,虽然提问提得很大.不是很好答,权当抛砖引玉了. 天字第一号原则:不要到网上抄代码,尤其是似懂非懂的 ...
- 使用类似于中介者模式实现不同VC之间的跳转
在2013年的时候,我们就已经实现了类似于http地址进行页面跳转, 那个时候,主要是用继承ViewController和给 UIViewController和UINavigationControll ...
- 说明sizeof和strlen之间的区别。
解析:由以下几个例子我们说明sizeof和strlen之间的区别.第1个例子: sizeof(ss)结果为4,ss是指向字符串常量的字符指针.sizeof(*ss)结果为1,*ss是第一个字符.第2个 ...
- linux – tty,ttyS,pts,ptmx,vcs,vcsa设备文件之间的区别?(/dev/tty等)
linux – tty,ttyS,pts,ptmx,vcs,vcsa设备文件之间的区别? 终端有字符终端和图形终端两种模式.在linux的图形环境下,我们可以通过鼠标点击来完成所有的管理任务,这是图形 ...
- select、poll、epoll之间的区别总结
select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...
- 你真的会玩SQL吗?EXISTS和IN之间的区别
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
@property (nonatomic, assign) NSString *title; 什么是assign,copy,retain之间的区别? assign: 简单赋值,不更改索引计数(Refe ...
- javascrip中parentNode和offsetParent之间的区别
首先是 parentNode 属性,这个属性好理解,就是在 DOM 层次结构定义的上下级关系,如果元素A包含元素B,那么元素B就可以通过 parentElement 属性来获取元素A. 要明白 off ...
随机推荐
- JSON/XML格式化插件比较
一.引子 Chrome工具里面有很多json格式化的插件,可以让杂乱的json内容变得有序,我们先来看看效果: 正常情况下: 格式化后: 规整多了吧! 二.工具分享+比对 1.JSON Formatt ...
- 异步post请求之代理方法
#import "ViewController.h" #import "Header.h" @interface ViewController ()<NS ...
- Android源码分析之HandlerThread
HandlerThread是一种特殊的Thread,也就是有Looper的thread,既然有looper的话,那我们就可以用此looper来 创建一个Handler,从而实现和它的交互,比如你可以通 ...
- block的用法以及block和delegate的比较(转发)
看到一篇写的关于block和delegate放在一起来方便大家理解的文章,感觉不错,就推荐给大家来看一下. 代理设计模式对于iOS开发的人来说肯定很熟悉了,代理delegate就是委托另一个对象来帮忙 ...
- TCP & UDP & IP
TCP和UDP的区别 TCP UDP 是否连接 面向连接 面向非连接 应用场合 可靠的 不可靠的 速度 慢 快 传送数据 字节流 数据报 是否可用于广播 否 是 为什么UDP比TCP快 不需要连接 ...
- c++虚函数,纯虚函数,抽象类,覆盖,重载,隐藏
C++虚函数表解析(转) ——写的真不错,忍不住转了 http://blog.csdn.net/hairetz/article/details/4137000 浅谈C++多态性 http://bl ...
- WebService核心文件【server-config.wsdd】详解及调用示例
WebService核心文件[server-config.wsdd]详解及调用示例 作者:Vashon 一.准备工作 导入需要的jar包: 二.配置web.xml 在web工程的web.xml中添加如 ...
- C语言初学者代码中的常见错误与瑕疵(5)
问题: 素数 在世博园某信息通信馆中,游客可利用手机等终端参与互动小游戏,与虚拟人物Kr. Kong 进行猜数比赛. 当屏幕出现一个整数X时,若你能比Kr. Kong更快的发出最接近它的素数答案,你将 ...
- MongoDB学习笔记——聚合操作之聚合管道(Aggregation Pipeline)
MongoDB聚合管道 使用聚合管道可以对集合中的文档进行变换和组合. 管道是由一个个功能节点组成的,这些节点用管道操作符来进行表示.聚合管道以一个集合中的所有文档作为开始,然后这些文档从一个操作节点 ...
- windows 搭建 solr 5.3.2
1. Tamcat 的安装,此不介绍 路径:F:\SolrTest\apache-tomcat-8.0.18 2. 解压 solr 5.3.2 路径:F:\Tool\solr-5.3.2 3. 复制s ...