简述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, ^% ~
不过我经过这么多年,把这个问题反而看淡了,我认为面向对象相对面向过程,仅仅是结构化程序设计的一个具体体现,是编译器提供手段,强迫程序
相关文档:
尽管 Lua 的关键词的设计,运行符的设计,语法的设计等方面与 C 很相似,但我们还要注意其明显不同的地方。
条件判断时的真假条件
Lua 中所有的值都可以作为条件。在控制结构的条件中除了 false 和 nil 为假,其他值都为真。所以 Lua 认为 0 和 空串 都是真。
而 C 中,认为只要是在内存中表现为 0 值的符号都为假。
字 ......
#include<windows.h>
void Birthday();
int main()
{
Birthday();
return 0;
}
void Birthday()
{
unsigned frequency[]={392,392,440,392,523,494,
392,392,440,392,587,523,
......
c库函数详解——assert
函数名: assert
功 能: 测试一个条件并可能使程序终止
用 法: void assert(int test);
程序例:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
struct ITEM {
int key;
int value;
};
/* add item to ......
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。
C++能被操作系统(Window,Linux)直接运行,而Java不行,需要有个JVM。
java语言给开发人员提供了更为简洁的语法;取消了指针带来更高的代码质量;完全面向对象,独特的运行机制是其具有天然的可移植性。
1.指针
JAVA ......