简述C和C++程序员学习历程
哈哈!有幸在某网站发现这篇文章,读罢,觉得蛮有道理,发来大家一起共勉之
总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。
' J$ |0 ?! p% w" t5 D6 D: c9 |0 B
一家之言,欢迎拍砖哈。
1、可以考虑先学习C.
/ U$ X+ X/ P; Y: h" I
大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家。做一个有用的程序员,做一个赚钱的程序员。我们的价值,将体现在客户价值上,而不是语言写得好不好看。 9 l( K9 ? S/ v4 M J4 s0 Z: {
. z. v. ~) V4 ]" ^& t
C++是C的一个面向对象的解释,C++为C扩充了大规模工程应用,复杂的系统结构的组织和掌控方法,但是,我认为,C++骨子里还是C的。 % ~5 b8 @* x( t, z8 {+ e! L* Z
: e& r8 `; ~: \7 m6 `6 g/ m
毕竟,解决具体问题,每个函数内部,都是用C的方式写程序,还是面向过程的。 0 h a" n9 G+ p, ]6 R
X4 o/ Q3 z% Z0 s, h$ A
因此,想要学习好C++,我的建议,先学习C,先学解决问题的能力,再讨论解决大问题的能力。就是先学习怎么走路,再学习怎么跑步。 6 e2 i+ A9 N5 b; Q( `$ o. {! @& S% `
2、学习C的过程中,一定要理解结构化编程思维。 ) ^. Y# r+ m/ W4 I% ~5 Z$ @
6 r# W* |2 f9 L9 b; j! s
为什么呢,我前面有文章说过,软件语言的发展过程,就是一个数据私有化的过程,大型工程应用,强调高内聚,低耦合,模块化设计,保持代码最大的灵活性和安全性。
这是现代工程化开发的核心和灵魂。 & @7 A$ D0 _, Z" c! @% `
因此,利用C这门语言入门,借此理解结构化开发思维,可以说是个很方便的路子。因为C的函数,本来就是为重用做准备的。同时,全局变量和cpp内部私有变量的差别,其使用原则,这些都能学到很多结构化开发思维。
3、开始学习C++ ! f% P7 D# H4 t' v: T6 j6 T
3 I) w& _. P& g1 r9 j! v# K' G
C++不难学的,很多人觉得C++难学,其实是因为它在C之外,又提供了很多的概念,尤其是对象,很难以理解。 ' K9 w6 D4 E, ^% ~
不过我经过这么多年,把这个问题反而看淡了,我认为面向对象相对面向过程,仅仅是结构化程序设计的一个具体体现,是编译器提供手段,强迫程序
相关文档:
经过几次面试,发现笔试题基本上都是那几道,没有什么创新或者改变,总结出来给大家参考参考.
一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。(10分)
请写出 BOOL flag 与“零值”比较的 if 语句。(3分)
标准答案:
if ( flag )
& ......
假设有char a[2];
如要把a转换为int值。应是如下写法int b=*(int *)a;
即,先把指针a 转换为一个int指针,然后再此基础上取值。
但是另一种写法 int b=(int)(*a);是不对的,*a 取a的内存单元内容,因为现在a是char指针,所以只会取a[1]中内容,最大为255. 这里要说明的是,在把char或byte数组转换为其他类型的值时,要先 ......
#include <stdio.h>
#include <string.h>
int
main(void)
{
char str[] =
"3BVPSq4xF.K?=u#,"
"G'K<MrDnRr7gH%#,"
"XKf<f%G`w^=?C<#,"
"HgU_AnNR?*PDQU#,"
......
上一篇中我们已经了解如何在Python程序和C模块之间进行值的相互传递,现在我们来进入实作阶段,看看如何将一个C语言开发的开源mp3编解码库LAME包装为一个Python下可以使用的扩展模块。首先去http://lame.sourceforge.net/download.php下载LAME的源代码,然后切换到root用户编译源代码,./configure
make
make instal ......