友情提示:本文共有 2789 个字,阅读大概需要 6 分钟。
“学”的部分:
一个没有基础的人,要完整地学会C++语言,可能需要一年往上的时间,而且还不一定能学明白。我以为,这个问题出在教材上,写得太过于晦涩难懂了,而且把很多特别不常用的内容添加了进去,这会导致很多想学的人越看越迷糊。在我看来,C++语言的基础内容不是很多,我们只抓重点,用一整天的时间绝对可以学会。
前几节课说过,计算机是一个计算二进制0和1加法的超级机器,我们看到的所有应用软件,在电脑内部都是一堆0和1的数字而已。这些0和1不是胡乱堆砌的,而是按照特殊的规律组合在一起的,这种规律就是所谓的机器语言。
如你所想,机器语言也是一种编程语言,只不过放眼望去,机器语言的代码全部是0和1的组合,不是特别专业的人,绝对看不懂写了什么。不过,机器语言的好处是计算机能直接读懂。但是,机器语言实在是太过于难懂了,还容易看得眼花,所以,没过多久,一帮会机器语言的程序员一起开发了用字母和数字代替二进制的编程语言,这个语言就是大名鼎鼎的汇编语言。
汇编语言只不过是简单翻译了一下二进制中的内容。
比方说,10101010这个二进制代表的是一个控制命令,它能把CPU中某个地方的某个数据转移到另一个地方;而汇编语言,就用MOV这个单词代表了这个二进制的命令。
也就是说,汇编语言相当于是翻译语言,它的编程过程和机器语言的编程过程是一模一样的。可是,电脑看不懂汇编语言,所以,这些发明汇编语言的程序员用机器语言写了一个翻译程序,这个翻译程序能把汇编语言的代码翻译成机器语言的代码。
虽然汇编语言给大家带来了很大的方便,可是汇编语言实在太繁琐了,一个简单的乘法,需要分解成一大堆的汇编代码。所以,在不久之后,程序员们又开发了新的编程语言,也就是我们现在熟知的高级语言。
高级语言的优点,是非常接近人类使用的自然语言。比方说上面的乘法,用汇编语言是一堆代码,而用高级语言,可以直接用乘号来书写。我想,一个没有学过编程的人,都能看明白高级语言中的加减乘除。
和汇编语言类似,高级语言也有翻译程序。这个翻译程序是把高级语言翻译成汇编语言,然后再用汇编语言的翻译程序,把它最终翻译成机器语言。由于高级语言和自然语言很像,它和汇编语言之间的鸿沟是巨大的,所以,高级语言在翻译成汇编语言的时候,会出现超大量的代码冗余。什么意思呢?就是会翻译出超大量的无用汇编代码。如果一个程序员懂汇编语言的话,就能看出,自己用高级语言写的代码翻译出了很多没必要的重复动作。这也是没办法的事情,能翻译成现在这个样子,已经是高手程序员前辈的极限了。
这样你就明白一个道理:同样一个程序,用机器语言和汇编语言写出来的代码,执行效率是差不多的;而用高级语言写出的代码,执行效率要慢上很多。
不仅如此,汇编语言写出的代码占用空间也小。比方说,同样的记事本程序,Windows自带的用高级语言写的记事本大小差不多是200kb,而且还需要很多额外文件的支持;而用汇编语言写出的同样功能的记事本,大小只有10kb左右。
一般来讲,高级语言的功能越复杂,翻译成的汇编代码冗余越大。而C++语言的基础功能是比较简单的,这些功能翻译成汇编语言的时候,冗余量是可以承受的。所以,C++语言写出的程序效率是比较高的。
也就是说,我们只需要学会C++语言的基础功能,就能编写C++程序了。我归纳总结了一下,C++语言的基础概念是12个。所以,下面提到的12个C++语言的基础概念是重中之重。
概念一:语法
高级语言就是一行一行的代码,这些代码是按照一定的规律写出来的。就好像我们写英语的句子一样,是有一定规律的,而这个规律就是语法。和英语类似,C++语言的每行代码用到的规律就是所谓的语法了。我们可以再简化一下,我们要学的C++语法就是下面11个概念。
下面11个概念,可以说是C++的11个语法。语法相当于公式,在具体的运用中只要符合公式,那代码就是合法的(符合语法)。
概念二:关键字和标识符
一个语法的组成,有可变的部分和不可变的部分。比方说加法的语法是:
数字1 + 数字2
那么,数字1和数字2是可变的,中间的“+”是不可变的。在C++语法中,除了像加减乘除的符号不可变之外,还有很多功能特定的单词也是不可变的,这些不可变的单词就是所谓的关键字了。所有的关键字,都是C++语言中为了完成某一特定任务而设计的。对于写游戏程序而言,我们需要掌握的关键字汇总如下:
暂时不需要理解,如果能强行记忆下来会更好。
然后就是可变的内容了。可变内容除了数字和字母外,还有自定义的符号组合,这些符号组合还有一个专有名词——标识符。标识符可以用于任何需要字母组合的地方。比方说变量和函数名称。总之,你把标识符理解成C++语言中“取名字”的规矩就可以了。
规矩大约是下面3点:
(1)所有字母、所有数字以及下划线“_”的随机组合都是标识符。
(2)在C++语言中,大小写字母是区分开来的,也就是说,标识符abc和标识符Abc是完全不一样的“名字”。
(3)所有的特殊符号都不能出现在标识符中。除了下划线“_”以外,键盘上能打出来的任何符号都不行。
通过关键字和标识符,我们就能写出绝大部分的代码了。
需要提一点的是,C++语言中的空格和换行。
一般的空格和换行都会被C++的翻译程序略过。比方说
abc = 1 + c和abc = 1 + c以及abc =1 +c
在C++编程语言的翻译程序眼中是完全一样的内容。这样会带来一个问题:由于空格和换行已经失去了意义,所以,需要有特定的符号来表明某一行(记住,可能不在同一行)的代码已经完毕,这个符号就是分号“;”(记住,是英文状态下的符号)。像上面示例的代码,正确的写法应该是:
语句1:abc = 1 + c;语句2:abc = 1 + c;语句3:abc =1 +c;3个语句效果是完全一样的
就是在结束的地方加上分号。这个分号很重要,是初学者最容易忘记的小细节。如果代码忘记了分号,C++的翻译程序就会读不懂,从而给我们报错。
概念三:注释
即使高级语言已经很接近自然语言了,可由于代码一般比较庞大,程序员很有可能写到后面就忘记自己前面写的代码是什么意思了。编程的过程是把问题分解的过程,最后可能会分解成一堆加减乘除,过了段时间可能真的忘了自己写了啥。所以,给代码加注释变得非常重要。注释就是解释,相当于解释一下这行代码在干什么。
注释有两种方式:行注释以及多行注释。
行注释就是符号“//”双斜杠后面的内容,多行注释是符号“/*”和符号“*/”之间的内容。比方说上面的代码,可以这样注释:
abc = 1 + c; //移动的步数增加1
也可以这样注释:
abc = 1 + c; /*移动的步数增加1*/
我们建议,全部使用行注释,也就是“//”注释,避免使用多行注释。这一点记住就行,因为这是我们多年编程经验的总结。
本文如果对你有帮助,请点赞收藏《教孩子写游戏:快速入门C++语言 理解这12个概念 1天时间够了》,同时在此感谢原作者。