一门编程语言如何理解?

作者: 七声颤抖 | 来源:发表于2019-05-22 14:29 被阅读0次

是谁在死记硬背学编程?

没错,是我!

记得刚开始学编程那会儿,没有任何计算机基础,编程语法大多靠背——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,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。资源分享

相关文章

  • 一门编程语言如何理解?

    是谁在死记硬背学编程? 没错,是我! 记得刚开始学编程那会儿,没有任何计算机基础,编程语法大多靠背——C++语法,...

  • 精通C语言能快速上手Rust吗?

    其实大部分编程语言都是相通的,熟练掌握一门编程语言,能帮助我们更好理解其他编程语言,学习周期也会缩短。Rust语言...

  • 如何学习编程语言

    前言:这篇文章要讨论的并不是编程新手所关注的问题,比如 “如何选一门入门编程语言”,“如何开始从零开始学习一门编程...

  • CS资料

    王垠:编程的智慧如何掌握所有的程序语言 编程入门指南十年学会编程如何学习一门新的编程语言?——在学习区刻意练习程序...

  • 怎么样才算掌握一编程门语言?

    要玩编程首先要掌握一门编程语言,编程语言是做软件的基础,初学编程都是从一门基础的编程语言开始,要真正掌握一门编程语...

  • Python 第3讲 顺序,循环,分支

    任何一门编程语言,都离不开顺序,循环,分支这3大类概念。理解这3种概念是学好一门编程语言的基础。 顺序:就是告诉电...

  • 面对对象(一)

    1. 面向对象简介 • Python是一门面向对象的编程语言 • 所谓面向对象的语言,简单理解就是语言中的所有操作...

  • 2019年2月编程语言排行榜:Java依旧第一,Python干掉

    请注意,TIOBE 编程语言排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写...

  • 面向对象上

    面向对象简介• Python是一门面向对象的编程语言• 所谓面向对象的语言,简单理解就是语言中的所有操作都是通过对...

  • python3.x系列二:python编程规范

    编程语言千千万,他们之间有不同的处也有相似之处。 通过一门编程语言去学习另外一门编程语言,可以通过对比的方式去上手...

网友评论

    本文标题:一门编程语言如何理解?

    本文链接:https://www.haomeiwen.com/subject/juxuzqtx.html