找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4017|回复: 15

学C++之前要先学C语言吗?

  [复制链接]

10

主题

377

回帖

2757

积分

高级会员

积分
2757
发表于 2018-9-22 22:08:52 | 显示全部楼层 |阅读模式
很多没有学过C语言的初学者可能会这样问:学习C++之前要先学习C语言吗?
我对这个问题保持中立,但是初学者直接学习C++会非常吃力,Hold 不住。C++是一门灵活多变、特性丰富的语言,同时也意味着比较复杂,不易掌握。
不过可以明确地说:学了C语言就相当于学了C++的一半,从C语言转向C++时,不需要再从头开始,接着C语言往下学就可以。
C++和C语言的血缘关系
现在看来,C++和C语言虽然是两门独立的语言,但是它们却有着扯也扯不清的关系。
早期并没有"C++"这个名字,而是叫做"带类的C"。"带类的C"是作为C语言的一个扩展和补充出现的,目的是提高开发效率,如果你有Java Web开发经验,那么你可以将它们的关系与 Java 和 JSP 的关系类比。

这个时期的C++非常粗糙,仅支持简单的面向对象编程,也没有自己的编译器,而是通过一个预处理程序(名字叫 cfront),先将C++代码"翻译"为C语言代码,再通过C语言编译器合成最终的程序。

随着C++的流行,它的语法也越来越强大,已经能够很完善的支持面向对象编程和泛型编程。但是一直也没有诞生出新的C++编译器,而是对原来C编译器不断扩展,让它支持C++的新特性,所以我们通常称为C/C++编译器,因为它同时支持C和C++,例如 Windows 下的微软编译器(cl.exe),Linux 下的 GCC 编译器。
也就是说,你写的C、C++代码都会通过一个编译器来编译。
再说C++教程
如果针对没有任何编程经验的读者写一本C++的书,那将是一项不小的任务,写出来的书也会非常厚。即使这样,也仅仅是在讲语法。
更重要的是,这些知识你很难全部吸收,会严重打击你的信心,失去学习的兴趣。
我的建议
没有任何编程基础的读者,我建议先从C语言学起,不要贪多嚼不烂。有编程基础的读者,相信你自己能做出正确的判断。  
学习编程是一个循序渐进的过程,不要期望一口吃个胖子。学习C语言,一来是学习它的语法,为C++打基础,再者是培养你的编程思维。
每个初学者都经历过这样的窘境:已经学习了语法,明白了编程语言都有什么,也按照教程敲了不少代码,但是遇到实际问题就挂了,没有思路,不知道从何下手。说白了就是只会学不会用。
究其原因,就是实践少,没有培养起编程思维!学习知识容易,运用知识难!  
等你熟悉了C语言,能编写出上百行的代码,就对编程有些概念了。这个时候再去了解C++究竟在C语言基础上增加了什么,你就站在了一定的高度。
从"学院派"的角度来说,C++支持面向过程编程、面向对象编程和泛型编程,而C语言仅支持面向过程编程。就面向过程编程而言,C++和C几乎是一样的,所以学习了C语言,也就学习了C++的一半,不需要从头再来。  
C语言中文网的教程也是这样安排的:
先讲解C语言,不希望学习C++的读者可以就此止步。
再讲解C++,主要包括C++和C的一些差别,以及面向对象编程和泛型编程。
工控课堂 www.gkket.com

0

主题

404

回帖

2721

积分

高级会员

积分
2721
发表于 2018-10-14 06:55:18 | 显示全部楼层
真是被感动的痛哭流涕……
工控课堂 www.gkket.com

0

主题

425

回帖

2449

积分

高级会员

积分
2449
发表于 2018-11-11 07:17:31 | 显示全部楼层
楼主加油,我们都看好你哦。
工控课堂 www.gkket.com

0

主题

453

回帖

2302

积分

高级会员

积分
2302
发表于 2018-12-29 21:15:45 | 显示全部楼层
淡定,淡定,淡定……
工控课堂 www.gkket.com

13

主题

396

回帖

2653

积分

高级会员

积分
2653
发表于 2019-1-27 11:11:55 | 显示全部楼层
我顶,我顶,我顶顶顶
工控课堂 www.gkket.com

0

主题

106

回帖

292

积分

注册会员

积分
292
发表于 2019-4-29 18:47:32 | 显示全部楼层
太生气了,无法HOLD啦 >_<......
工控课堂 www.gkket.com

0

主题

90

回帖

120

积分

新手上路

积分
120
发表于 2025-11-19 14:18:46 | 显示全部楼层
浅蹲一个后续,楼主更新踢我一下
工控课堂 www.gkket.com
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:7
  • 最近打卡:2025-09-10 18:02:03

0

主题

92

回帖

278

积分

注册会员

积分
278
发表于 2025-11-19 14:35:50 | 显示全部楼层
路过混个脸熟,顺便为优质内容打 call~
工控课堂 www.gkket.com

0

主题

102

回帖

289

积分

注册会员

积分
289
发表于 2025-11-19 14:36:44 | 显示全部楼层
赞同 + 10086,没毛病,完全没毛病
工控课堂 www.gkket.com

0

主题

101

回帖

152

积分

新手上路

积分
152
发表于 2025-11-19 14:42:35 | 显示全部楼层
画面感太强了,仿佛身临其境!
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 16:03 , Processed in 0.089373 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表