一门编程语言如何理解?

是谁在死记硬背学编程?

没错,是我!

记得刚开始学编程那会儿,没有任何计算机基础,编程语法大多靠背——C++语法,操作系统各项定义,计算机网络各种协议......

后来我发现,不只我一个人这样学习,身边不少同学都是如此,认为学习一门编程语言最重要的就是掌握其语法。所以为了将语法烂熟于心,最直接的方法就是记忆。

我们记忆了什么是常量,什么是作用域,什么是多态......

看到这里你可能觉得我会说:编程语言不重要,编程思维才是最重要的,那么问题来了,到底什么才是编程思维呢?我并不是来宣扬这句编程届名言的,因为它不适合一个初学者,初学者可能既不知道什么是编程思维,也对编程语言比较生疏。

我想分享的是:学习编程语言的语法确实很重要,只有理解、熟悉了语法才能更好地应用一门编程语言,所以我们去背诵记忆编程语言的语法也是可以理解的,不过这可能不是最好的办法。

光凭记忆语法,是很难学会编程的,反而是用这门编程语言一段时间之后再回过头看看那些语法,说不定突然就理解了。

其实编程语言的语法也是可以通过理解来学习的。

举一个我大学时刚学C++时遇到的一个语法问题:我们称它为const问题。

可能有同学没有学过C++,我简单解释一下,const是一个C++的关键字,最常用来定义常量。譬如:

const int MAX_VAL = 23;

const string SCHOOL_NAME = “Peking University” ;

那么我们把MAX_VAL称为整型常量,把SCHOOL_NAME称为字符串常量,这些常量在其生命周期内其值都不能被修改。


上面两个语句是很好理解的,再看看下面的呢?

const int * p=&n;

int * const p;

const int *const p;

上面三个语句看起来就不是那么好理解了吧?我刚学习const语句的时候也被这些复杂的语句给难到了,只能死记硬背,按顺序,这三个语句分别是:

const int * p=&n; //指向整型常量的指针,它指向的值不能修改

int * const p; //指向整型的常量指针 ,它不能再指向别的变量,但指向(变量)的值可以修改

const int *const p; //指向整型常量的常量指针,它既不能再指向别的常量,指向的值也不能修改

很明显,p是一个指针,并且指向常量,这两点大家都能轻而易举地看明白。难点就是const到底控制着谁,谁不能被修改?

之前遇到这种问题我也是死记硬背的,不过后来就慢慢地理解它了,因为C++作为一门流行了那么久,那么多人用的编程语言,这其中一定有它的设计哲学。


问题来了,如何去理解呢?

很简单,const修饰谁,谁的值就不能变,这其实和英语中不同词性单词的位置排列一样。对于一个名词,我们找离它最近的const。

如下面飘红的词:

const int * p = &a;

int * const p = &a;

第一个const修饰的是 int ,int指代的是整型变量,也就意味着,指针p指向的值是不能修改的,也就是a的值不能变,但是p还可以指向别的变量,比如说指向b。

第二个const修饰的是p,p指代的是指针,也就意味着这个指针不能被修改,因为指针变量存的是地址,也就是说p存了一个地址后就不能存其他地址了,换句话说就是它不能指向别的变量了,但是p指向的变量的值可以改变。比如p指向a,a原来等于1,现在我们可以把a的值改为2,但是p在生命周期内只能指向a,不能指向b或者其他值。

那么const int *const p 就很好理解了,它指向的值不能修改,也不能再指向别的变量。

感兴趣的同学还可以用这个套路去理解一下 const this 指针,看看是不是适用呢?

以上用一个小例子分享了一下如何去理解一门编程语言,其实可以通过理解学习编程的地方还有很多,比如形参、实参、传值、传引用、函数指针、友元、多态、重载等等等等,大家都可以尝试换种思路去理解,很多知识点一下子就能明白啦。


我们需要记住,学习编程的出发点不是应付考试。

当然,除了编程语言,很多其他的知识,如软件分层、设计模式,都是水到渠成式的设计。

大家别忘了点个赞哟!

在学习python中有任何困难不懂的可以加入我的python交流学习QQ群:932749660,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。资源分享

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容